Java和Python中的整除和求餘運算

執行如下的Java語句:

System.out.println("5 / 3 = " + (5 / 3));

System.out.println("5 / -3 = " + (5 / -3));

System.out.println("-5 / 3 = " + (-5 / 3));

System.out.println("-5 / -3 = " + (-5 / -3));

輸出結果爲:

5 / 3 = 1

5 / -3 = -1

-5 / 3 = -1

-5 / -3 = 1

可以看出,整除把結果的小數部分截掉了。

再執行如下的Java語句:

System.out.println("5 % 3 = " + (5 % 3));

System.out.println("5 % -3 = " + (5 % -3));

System.out.println("-5 % 3 = " + (-5 % 3));

System.out.println("-5 % -3 = " + (-5 % -3));

輸出結果爲:

5 % 3 = 2

5 % -3 = 2

-5 % 3 = -2

-5 % -3 = -2

這個結果可以通過如下運算得到:

a % b = a - (a / b)

求餘的結果總是與被除數保持一致的符號。在上式中,a爲被除數。

但在Python中,這稍微有些不同。

>>> 5 // 3

1

>>> 5 // -3

-2

>>> -5 // 3

-2

>>> -5 // -3

1

在這裏,整除的結果似乎是這樣得到的:

a // b = math.floor(float(a) / b);

>>> 5 % 3

2

>>> 5 % -3

-1

>>> -5 % 3

1

>>> -5 % -3

-2

這也是通過如下運算得到的:

a % b = a - (a / b)

求餘的結果總是與除數保持一致的符號。在上式中,b爲除數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章