下面我的代码打印的值是
3.7275e-05
为什么这个简单的数学问题不返回0.000037275?
(。00003550 * .05)= .000001775 + .00003550 = .0000372575
buyinamount = .00003550
percentgain = .05
amtgained=float(buyinamount*percentgain)+buyinamount
print amtgained
答案 0 :(得分:1)
这是一个精度问题,由十进制数如何存储在内存中引起。所有数字,整数和小数均以二进制(1s和0s)的形式存储。因此,某些小数位不能以100%的精度存储,因此也弄乱了计算。
在python中,您可以使用Fraction
和Decimal
模块来使计算更准确(这就是official documentation)