为什么python提供错误的浮点计算

use*_*880 5 python

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

>>>16473599
Run Code Online (Sandbox Code Playgroud)

好吧...显然我做错了什么...我知道这些浮动的东西有时从 C# 有点困难...但我认为 * 1000 应该工作...好吧错

有人能告诉我如何更好地做到这一点吗?

非常感谢您

Rah*_*thi 4

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

您可以查看浮点运算:问题和限制

您可以尝试使用Decimal

x = '16473.6'
y = str(int(Decimal(x) * 1000))
print(y)
Run Code Online (Sandbox Code Playgroud)