定义精度时设置python Decimal会产生不精确的小数

定义精度时设置python Decimal会产生不精确的小数,python,unit-testing,floating-point,decimal,Python,Unit Testing,Floating Point,Decimal,为什么我不能在我配置的精度范围内显式声明一个精确的Decimal对象 from decimal import * getcontext().prec = 5 num = Decimal(0.1234) print num 预期产出: 0.1234 实际产量: 0.12339999999999999580335696691690827719867229461669921875 最后,我将编写单元测试,比较由于预期值不精确而失败的十进制对象。0.1234首先转换为标准IEEE-754基数-2

为什么我不能在我配置的精度范围内显式声明一个精确的
Decimal
对象

from decimal import *
getcontext().prec = 5

num = Decimal(0.1234)
print num
预期产出:

0.1234
实际产量:

0.12339999999999999580335696691690827719867229461669921875

最后,我将编写单元测试,比较由于预期值不精确而失败的十进制对象。

0.1234
首先转换为标准IEEE-754基数-2浮点数,然后将近似值转换为十进制。把它当作一根绳子就行了

>>> Decimal(0.1234)
Decimal('0.12339999999999999580335696691690827719867229461669921875')
>>> Decimal('0.1234')
Decimal('0.1234')