一尘不染

为什么python用float提供错误的计算

python

x = '16473.6'
y = str(int(float(x) * 1000))
print(y)

>>>16473599

好吧…显然我做错了…我知道这些浮动的东西有时在C#中有点困难…但是我认为* 1000应该可以工作…好吧

有人可以告诉我如何做得更好吗?

非常感谢你


阅读 269

收藏
2021-01-20

共1个答案

一尘不染

浮点数始终是计算的问题,因为它基于数字的二进制近似值。

您可以检查 浮点算法:问题和局限性

您可以尝试使用 Decimal

x = '16473.6'
y = str(int(Decimal(x) * 1000))
print(y)
2021-01-20