【发布时间】:2016-03-02 11:10:54
【问题描述】:
花了很长时间才找到一个错误,这个错误基本上归结为我假设以下两个模都会返回大于 0 的结果:
>>> -0.09 % 0.1
0.010000000000000009 # OK
>>> Decimal('-0.09') % Decimal('0.1')
Decimal('-0.09') # Not OK -- I expected a positive value!
这种行为似乎违背了Python docs:
模运算符总是产生与第二个操作数符号相同(或零)的结果
这是一个错误,还是我做错了什么?
【问题讨论】:
-
鉴于您引用的文档说“总是”,并且它不能通过将其限制为任何特定类型来限定该声明,我认为可以公平地说文档是错误的。跨度>