这个数学方程式。。。在
(4195835 / 3145727) * 3145727 - 4195835
应该等于0
。根据《软件测试》(第二版)一书
If you get anything else, you have an old Intel Pentium CPU with a floating-point division buga software bug burned into a computer chip and reproduced over and over in the manufacturing process.
使用Python2.7,我在命令行中得到-1050108
。在
{I>就像在节点中使用计算器一样
对此有更深入的解释吗?这最初是由于1994年迪斯尼的《狮子王》中的一个错误引起的。我想我可以用一些东西来检验这个等式。在
使用整数数学(这是您正在使用的),
(4195835 / 3145727)
将使您1.33382...
向下舍入到整数1
。在所以你最终会得到:
这就是为什么你得到那个负数。在
只需将其中一个值设为浮点,就可以强制它使用浮点:
^{pr2}$你做了整数运算而不是浮点运算。在
请注意,您可以使用py3k或PEP238除法从整数中获得所需的行为。在
^{pr2}$相关问题 更多 >
编程相关推荐