【发布时间】:2011-11-22 20:04:24
【问题描述】:
我在 Python 中有一个舍入问题。如果我计算
32.50 * 0.19 = 6.1749999999999998
但这应该是 6.175。如果我将 6.1749999999999998 舍入 2 位小数,则它正确显示 6.18。所以我可以忍受。
但如果我计算这个:
32.50 * 0.19 * 3 = 18.524999999999999
这应该是 18.525。如果我将值 18.524999999999999 舍入两位小数,则显示 18.52。
它应该显示 18.53。我做错了什么,我该如何解决?
【问题讨论】:
-
试试
print 32.50 * 0.19或print 32.50 * 0.19 * 3。 Python 知道如何正确显示这些浮点值。只要是这种情况,您就可以像计算机一样接近使用浮点存储的正确(十进制)值。如果您真的需要准确 答案(您不需要),请使用Decimal.decimal。 -
-1。在 StackOverflow 的搜索中输入这篇文章的标题很容易找到这个问题的答案。 -1 表示没有为此付出努力。