划分浮标时错误的结果

时间:2015-06-24 08:44:27

标签: python

我期待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')

我需要做些什么才能获得正确的结果?

1 个答案:

答案 0 :(得分:0)

如果以非数字方式完成,只需考虑0.3/3的结果。这是0.1,对吗?如果您以数字方式执行任何数学运算(读取:使用某种计算机), 引入错误,这是不可避免的。它们是由于计算机进行算术运算的方式。而python给你的结果并没有错。它只是反对那些算术错误。您得到的结果是0.1,并且只有大约1e-16,这是他的机器容差。这基本上是计算机能做的最好的。