【问题标题】:setting python Decimal when defining precision yields inexact Decimal在定义精度时设置 python Decimal 会产生不精确的 Decimal
【发布时间】:2014-09-14 03:41:08
【问题描述】:

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

from decimal import *
getcontext().prec = 5

num = Decimal(0.1234)
print num

预期输出:

0.1234

实际输出:

0.12339999999999999580335696691690827719867229461669921875

最终,我正在编写单元测试来比较由于预期值不准确而失败的 Decimal 对象。

【问题讨论】:

    标签: python unit-testing floating-point decimal


    【解决方案1】:

    0.1234 首先转换为标准 IEEE-754 radix-2 浮点数,然后将该近似值转换为十进制。只需将其保留为字符串即可。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-12
      • 2018-05-19
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      • 2022-12-15
      相关资源
      最近更新 更多