Python十进制模块的奇怪结果

Python十进制模块的奇怪结果,python,Python,在以下代码中: >>> round(Decimal('0.755'), 2) 0.76 >>> round(Decimal('0.735'), 2) 0.73 为什么是四舍五入(十进制('0.735'),2)不是0.74 请注意,根据: 因此,十进制对象被转换回浮点数,然后四舍五入,给出了可能使用小数来避免的行为。相反,您应该使用以下方法: 5秒搜索距离:round()对浮点的行为可能令人惊讶:例如,round(2.675,2)给出的是2.67,而不是预期的

在以下代码中:

>>> round(Decimal('0.755'), 2)
0.76
>>> round(Decimal('0.735'), 2)
0.73
为什么
是四舍五入(十进制('0.735'),2)
不是
0.74

请注意,根据:

因此,十进制对象被转换回浮点数,然后四舍五入,给出了可能使用小数来避免的行为。相反,您应该使用以下方法:

5秒搜索距离:round()对浮点的行为可能令人惊讶:例如,round(2.675,2)给出的是2.67,而不是预期的2.68。这不是一个错误:这是因为大多数小数不能精确地表示为浮点。有关更多信息,请参阅浮点运算:问题和限制。
>>> round(a, 1)     # round() first converts to binary floating point
1.3
>>> Decimal('0.735').quantize(Decimal('0.01'))
Decimal('0.74')