python 怪事 23300*0.7 = 16309.999999999998?
如何解决?
python 怪事 23300*0.7 = 16309.999999999998?
如何解决?
这是一个常见的浮点数计算问题。在计算机科学中,浮点数的计算往往会产生一些小数精度问题。
问题的原因在于,计算机内部使用二进制来表示小数,而有些十进制小数不能被精确地用二进制表示。这就导致了所谓的"浮点数误差"。
对于你的问题,如果你需要更精确的结果,可以使用 Python 的 decimal
模块。这个模块可以提供任意精度的十进制数。
下面是一个例子:
from decimal import Decimal
# 将数字转换为十进制
num = Decimal('23300')
# 计算 num * 0.7
result = num * Decimal('0.7')
print(result) # 输出:16310.0
这样就可以得到更精确的结果了。
3 回答3.1k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.8k 阅读
3 回答1.7k 阅读
1 回答1.4k 阅读✓ 已解决
所有编程语言都会有这个问题,不局限于Python。
百度:python decimal
对于金额计算,还有另外一个方法是全部换成分。