加电到十进制数会产生错误的答案

时间:2017-10-08 16:20:02

标签: python-3.x

我的计算很简单,但却提供了错误的答案, 例如3**0.1-0.3应该等于0.0, 但Python解释器给出了0.8161 即使使用Decimal系统。

我正在使用python 3.6.3,这是我的代码:

from decimal import Decimal as D
print(D('3')**D('0.1')-D('0.3'))

输出:

0.816123174033904434442614138

3 个答案:

答案 0 :(得分:1)

***之间存在差异。

尝试

print(D('3')*D('0.1')-D('0.3'))

答案 1 :(得分:0)

上面的答案是正确的,如果您所使用的是电源,请使用您可以为其供电的数学模块。

import math
print (math.pow (3,(0.1-0.3)))

答案 2 :(得分:0)

由于0.1和0.3之间的差值为负0.2。由于负指数意味着数字的重新定位,你可以尝试使用数学模块。

3**(1/float (-1*(0.1-0.3)))