我遇到了一个问题,使用Decimal数据类型时,quantize方法似乎会产生舍入误差:
为什么有时候会四舍五入,有时候则是四舍五入后取整?
Decimal('1.0055').quantize(Decimal('0.000')) # Should output 1.006
>> Decimal('1.006') # CORRECT output
Decimal('1.0045').quantize(Decimal('0.000')) # Should output 1.005
>> Decimal('1.004') # INCORRECT output
为什么有时候会四舍五入,有时候则是四舍五入后取整?
.0055
大于.0050
,因此它将被四舍五入到最接近的.006
。在第二个情况下,.0045
小于.0050
,因此它将被四舍五入到.004
。 - user5777975