首页 > 解决方案 > 将浮点数舍入到最接近的 0.005 倍数并舍入到 3 个十进制数字会产生奇怪的输出

问题描述

我写了一小段代码,将一个数字四舍五入到最接近的 0.005 倍数,但它产生了一个奇怪的输出,这是我没想到的。我正在使用 Python 版本3.7.3

这是代码:

number = 1.639
print(5 * round(number / 5, 3))

输出

1.6400000000000001

预期产出

1.64

检查此replit以获取有关不同值的详细输出。

谁能告诉我为什么会这样?

标签: pythonpython-3.xmath

解决方案


print(round(5 * round(1.639 / 5, 3), 3))

再次四舍五入,因为根据我所见,您将四舍五入的数字乘以 5,然后您希望该数字被四舍五入。我猜你应该舍入第一个舍入步骤的输出!


推荐阅读