[英]Integer division in Python
我對python中的以下整數數學感到困惑:
-7/3 = -3
因為(-3)*3 = -9 < -7
。 我明白。
7/-3 = -3
我不知道如何定義。 (-3)*(-3) = 9 > 7
。 在我看來,它應該是-2,因為(-3)*(-2) = 6 < 7
。
這是如何運作的?
從文檔 :
對於(普通或長整數)除法,結果為整數。 結果總是向負無窮大舍入 :1/2為0,( - 1)/ 2為-1,1 /( - 2)為-1,( - 1)/( - 2)為0。
向-inf
的舍入解釋了您所看到的行為。
這是它的工作原理:
int(x)/int(y) == math.floor(float(x)/float(y))
擴大了艾克斯和羅伯特的答案。
考慮到這一點的最佳方法是向下舍入(向負無窮大)浮點結果:
-7/3 = floor(-2.33) = -3
7/-3 = floor(-2.33) = -3
/用於浮點除法//用於整數除法(返回整數)
而python將結果向下舍入
Python向下舍入。 7/3 = 2(2 + 1/3)-7/3 = -3(-2 + 1/3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.