https://medium.com/pragmatic-programmers/increasing-precision-using-floating-point-numbers-c39d43dda5e5