Разница между Math.floorMod () и% в Java - PullRequest
0 голосов
/ 18 сентября 2018

Может кто-нибудь сказать мне разницу между Math.floorMod () и% в Java?

Я был очень смущен, когда

    int a = 3;
    int b = -2;
    System.out.println(a % b);
    System.out.println(Math.floorMod(a,b));

И результат 1 -1 вместо 11

1 Ответ

0 голосов
/ 18 сентября 2018

Согласно документам

Если знаки аргументов совпадают, результаты floorMod и оператора% совпадают.

floorMod(4, 3) == 1;   and (4 % 3) == 1

Если знаки аргументов отличаются, результаты отличаются от оператора%.

floorMod(+4, -3) == -2;   and (+4 % -3) == +1
floorMod(-4, +3) == +2;   and (-4 % +3) == -1
floorMod(-4, -3) == -1;   and (-4 % -3) == -1
...