2024-10-02 14:24:55 发布
网友
下面我的代码打印的值是
3.7275e-05
为什么这个简单的数学问题没有返回0.000037275
(.00003550*.05)=.000001775+.00003550=.0000372575
buyinamount = .00003550 percentgain = .05 amtgained=float(buyinamount*percentgain)+buyinamount print amtgained
这是由于十进制数如何存储在内存中而导致的精度问题。所有数字、整数和小数都以二进制(1和0)的形式存储。因此,某些小数不能以100%的精度存储,从而也会使计算变得混乱
在python中,您可以使用Fraction和Decimal模块来提高计算的准确性(这是official documentation)
Fraction
Decimal
这是由于十进制数如何存储在内存中而导致的精度问题。所有数字、整数和小数都以二进制(1和0)的形式存储。因此,某些小数不能以100%的精度存储,从而也会使计算变得混乱
在python中,您可以使用
Fraction
和Decimal
模块来提高计算的准确性(这是official documentation)相关问题 更多 >
编程相关推荐