【发布时间】:2012-12-31 09:22:42
【问题描述】:
为什么在 Python 中会发生这种情况:
>>>
>>> 483.6 * 3
1450.8000000000002
>>>
我知道这在其他语言中也会发生,我并不是在问如何解决这个问题。我知道你可以做到:
>>>
>>> from decimal import Decimal
>>> Decimal('483.6') * 3
Decimal('1450.8')
>>>
那么究竟是什么导致了这种情况发生呢?为什么在进行这样的数学运算时小数会稍微不准确?
是否有任何具体原因导致计算机无法正确执行此操作?
【问题讨论】:
-
Obligatory link。我将把它留给其他人来追查与此重复的众多问题中的一个。
-
看这个解释:effbot.org/pyfaq/… 如果你在做需要精确的事情(比如银行业),你通常使用两个整数或两个长整数来表示数字。
-
@Lattyware 我有时想知道...有多少传播链接的人实际上已经阅读了它?此外,有多少人理解它?
-
小数不。浮点数可以。根据定义,它们的准确性必须有限。
-
@phant0m 我从来没有提到百分比,这些是绝对数字。