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

发布时间:2019-08-26 07:19:43编辑:auto阅读(2043)

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

关键字