Python 为什么要打印-0.0?

Python 为什么要打印-0.0?,python,floating-point,Python,Floating Point,有人能解释一下为什么会发生以下情况吗 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

有人能解释一下为什么会发生以下情况吗

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
结果为负零,这是浮点中的一个东西。它的存在是因为它使一些数值算法的边缘情况更容易实现

print(-1 * (0.5*1210) % 11)   #-> 0.0
在这里,比Python更熟悉浮点运算的人可能会感到惊讶
-1*(0.5*1210)
的计算结果为
-605.0
,但在
-605.0%11
中,Python将
%
操作定义为返回与分母相同符号的结果,而不是返回分子,因此返回
-0.0

整数算术。这一点也不奇怪

print(-1 * (0.5*1210 % 11))   #-> -0.0
这是你可能会感到惊讶的地方
0.5*1210%11
计算为浮点零,然后
-1*0.0
结果为负零,这是浮点中的一个东西。它的存在是因为它使一些数值算法的边缘情况更容易实现

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

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

为什么不打印-0.0?这就是当你将0.0乘以-1时得到的结果。通过运算顺序、运算符优先级等逐步进行,因为它是一个浮点值而不是整数?这是一个好问题。在普通算术中,将0.0乘以-1得到0.0。IEEE浮点标准出于计算原因将符号与零相关联:为什么不打印-0.0?这就是当你将0.0乘以-1时得到的结果。通过运算顺序、运算符优先级等逐步进行,因为它是一个浮点值而不是整数?这是一个好问题。在普通算术中,将0.0乘以-1得到0.0。出于计算原因,IEEE浮点标准将符号与零相关联: