image.png
    注意事项:
    /和%的区别:两个数据做除法,/去结果的商,%取结果的余数。
    整数做运算时只能得到整数,要想得到小数,必须有浮点数参与运算。

    %运算符在Java与c++/c中的区别:
    在c++/c中,%运算符只支持两个整数之间的运算。
    在Java中,%运算符既支持两个整数之间的取余运算,还支持两个小数之间的取余运算。

    举个栗子:

    1. public class test1 {
    2. public static void main(String[] args) {
    3. double a = 5.3;
    4. double b = 3.3;
    5. System.out.println(a % b);
    6. }
    7. }

    运行结果:
    image.png

    %(模运算的细节)
    本质: a % b = a - (int)a / b * b;
    有小数运算的,得到的结果是近似值。
    代码演示:

    1. package test;
    2. public class Main {
    3. public static void main(String[] args) {
    4. //%取模,取余。
    5. //%的本质:a % b = a - a / b * b;
    6. //-10 % 3 = -10 - (-10) / 3 * 3 = -10 + 9 = -1
    7. //10 % -3 = 10 - 10 / (-3) * (-3) = 10 - 9 = 1
    8. //-10 % -3 = -10 - (-10) / (-3) * (-3) = -10 + 9 = -1
    9. //-10.5 % 3 = -10.5 - (-10) / 3 * 3= -10.5 + 9 = -1.5
    10. System.out.println(10 % 3);//1
    11. System.out.println(-10 % 3);//-1
    12. System.out.println(10 % -3);//1
    13. System.out.println(-10 % -3);//-1
    14. System.out.println(-10.5 % -3);//-1.5
    15. }
    16. }

    运行结果:
    image.png