在以下代码中:
>>> round(Decimal('0.755'), 2)
0.76
>>> round(Decimal('0.735'), 2)
0.73
为什么round(Decimal('0.735'), 2)
不是0.74
?
答案 0 :(得分:2)
请注意,根据quick-start tutorial:
>>> round(a, 1) # round() first converts to binary floating point
1.3
所以十进制对象被转换回float 然后舍入,给你的行为你可能使用小数来避免。相反,您应该使用.quantize
方法:
>>> Decimal('0.735').quantize(Decimal('0.01'))
Decimal('0.74')