python浮点乘法简单数学无法正确输出

2024-10-02 14:24:55 发布

您现在位置:Python中文网/ 问答频道 /正文

下面我的代码打印的值是

3.7275e-05

为什么这个简单的数学问题没有返回0.000037275

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

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

Tags: 代码数学floatprintamtgainedpercentgainbuyinamount
1条回答
网友
1楼 · 发布于 2024-10-02 14:24:55

这是由于十进制数如何存储在内存中而导致的精度问题。所有数字、整数和小数都以二进制(1和0)的形式存储。因此,某些小数不能以100%的精度存储,从而也会使计算变得混乱

在python中,您可以使用FractionDecimal模块来提高计算的准确性(这是official documentation

相关问题 更多 >