1
任何人都可以解釋爲什麼會發生以下情況嗎?爲什麼打印-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
是莫名其妙..
任何人都可以解釋爲什麼會發生以下情況嗎?爲什麼打印-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
整數算術。這裏沒有驚喜。
這裏是您可能會驚訝的地方。 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?這就是當你乘以-1時得到的結果。 – Kevin
步驟操作順序,操作符優先級等 – davedwards
,因爲它的浮點值而不是整數? – Olian04