我对如下所示的行为感到困惑:
>>> (-7) % 3
2
>>> Decimal('-7') % Decimal('3')
Decimal('-1')
>>>
>>> (-7) // 3
-3
>>> Decimal('-7') // Decimal('3')
Decimal('-2')
>>>
有人可以解释一下吗?
答案 0 :(得分:5)
Decimal对象上的算术之间存在一些小的差异 和整数和浮点数的算术。当余数运算符%时 应用于Decimal对象,结果的符号是符号 红利而不是除数的标志:
>>> (-7) % 4 1 >>> Decimal(-7) % Decimal(4) Decimal('-3')
整数除法运算符 // 的行为类似,返回 相反,真实商的整数部分(截断为零) 比它的楼层,以保持通常的身份 x ==(x // y)* y + x%y :
>>> -7 // 4 -2 >>> Decimal(-7) // Decimal(4) Decimal('-1')