Java和Python中的整除和求余运算

2023-01-31 02:01:44 java 运算 整除

执行如下的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为除数。

相关文章