Skip to main content
 首页 » 编程设计

python之为什么打印 -0.0

2025年05月04日14lhb25

谁能解释一下为什么会发生以下情况?

print(-1 * (605 % 11))        #-> 0 
print(-1 * (0.5*1210 % 11))   #-> -0.0 
print(-1 * (0.5*1210) % 11)   #-> 0.0 

尤其是 -0.0 令人费解..

请您参考如下方法:

print(-1 * (605 % 11))        #-> 0 

整数运算。这里没有惊喜。

print(-1 * (0.5*1210 % 11))   #-> -0.0 

这里可能会让您感到惊讶。 0.5*1210 % 11 计算为浮点零,然后 -1 * 0.0 导致 负零,这是 floating 中的东西-观点。它的存在是因为它使一些数值算法的边缘情况更容易实现。

print(-1 * (0.5*1210) % 11)   #-> 0.0 

这里是比 Python 更熟悉 float 的人可能会感到惊讶的地方。 -1 * (0.5*1210) 的计算结果为 -605.0,但随后在 -605.0 % 11 中,Python 定义了 % 操作返回与分母符号相同的结果,而不是分子,因此返回 0.0 而不是 -0.0。