擅长:python、mysql、java
<p>测试用例中的商不相等的原因是在<code>math.floor(a/b)</code>情况下,结果是用浮点算法(IEEE-754 64位)计算的,这意味着存在最大精度。你的商大于2<sup>53</sup>限制,超过这个限制,浮点不再精确到单位。在</p>
<p>但是,对于整数除法,Python使用其无限的整数范围,因此结果是正确的。在</p>
<p>另请参见<a href="https://www.python.org/dev/peps/pep-0238/#semantics-of-true-division" rel="noreferrer">"Semantics of True Division" in PEP 238</a>:</p>
<blockquote>
<p>Note that for int and long arguments, true division may lose information; this is in the nature of true division (as long as rationals are not in the language). Algorithms that consciously use longs should consider using <code>//</code>, as true division of longs retains no more than 53 bits of precision (on most platforms).</p>
</blockquote>