python float乘法-简单的数学无法正确输出

时间:2018-11-02 01:23:53

标签: python

下面我的代码打印的值是

3.7275e-05

为什么这个简单的数学问题不返回0.000037275?

(。00003550 * .05)= .000001775 + .00003550 = .0000372575

buyinamount = .00003550
percentgain = .05
amtgained=float(buyinamount*percentgain)+buyinamount
print amtgained

1 个答案:

答案 0 :(得分:1)

这是一个精度问题,由十进制数如何存储在内存中引起。所有数字,整数和小数均以二进制(1s和0s)的形式存储。因此,某些小数位不能以100%的精度存储,因此也弄乱了计算。

在python中,您可以使用FractionDecimal模块来使计算更准确(这就是official documentation