我期待0.1
作为结果,但是:
In [1]: 0.3 / 3
Out[1]: 0.09999999999999999
尝试Decimal
,没有任何改变。
In [2]: from decimal import Decimal
In [3]: Decimal(0.3) / Decimal(3)
Out[3]: Decimal('0.09999999999999999629925658458')
我需要做些什么才能获得正确的结果?
答案 0 :(得分:0)
如果以非数字方式完成,只需考虑0.3/3
的结果。这是0.1
,对吗?如果您以数字方式执行任何数学运算(读取:使用某种计算机),将 引入错误,这是不可避免的。它们是由于计算机进行算术运算的方式。而python给你的结果并没有错。它只是反对那些算术错误。您得到的结果是0.1
,并且只有大约1e-16
,这是他的机器容差。这基本上是计算机能做的最好的。