为什么这些值不同?它们之间又有什么不同?你知道吗
>>> from decimal import Decimal
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
Decimal('0.0')
>>> Decimal(0.1) + Decimal(0.1) + Decimal(0.1) - Decimal(0.3)
Decimal('2.775557561565156540423631668E-17')
Tags:
当您将
'0.1'
作为字符串传递时,十进制将转换为浮点,而不会丢失精度,但是当您将浮点直接作为0.1
传递时,它将丢失精度,如下面所示这就产生了各种各样的wierd结果
这是从十进制模块源代码中引用的,该代码解释得很好,如果输入是float,则模块内部调用class方法十进制浮点数()“:
相关问题 更多 >
编程相关推荐