注意事项:
/和%的区别:两个数据做除法,/去结果的商,%取结果的余数。
整数做运算时只能得到整数,要想得到小数,必须有浮点数参与运算。
%运算符在Java与c++/c中的区别:
在c++/c中,%运算符只支持两个整数之间的运算。
在Java中,%运算符既支持两个整数之间的取余运算,还支持两个小数之间的取余运算。
举个栗子:
public class test1 {
public static void main(String[] args) {
double a = 5.3;
double b = 3.3;
System.out.println(a % b);
}
}
运行结果:
%(模运算的细节)
本质: a % b = a - (int)a / b * b;
有小数运算的,得到的结果是近似值。
代码演示:
package test;
public class Main {
public static void main(String[] args) {
//%取模,取余。
//%的本质:a % b = a - a / b * b;
//-10 % 3 = -10 - (-10) / 3 * 3 = -10 + 9 = -1
//10 % -3 = 10 - 10 / (-3) * (-3) = 10 - 9 = 1
//-10 % -3 = -10 - (-10) / (-3) * (-3) = -10 + 9 = -1
//-10.5 % 3 = -10.5 - (-10) / 3 * 3= -10.5 + 9 = -1.5
System.out.println(10 % 3);//1
System.out.println(-10 % 3);//-1
System.out.println(10 % -3);//1
System.out.println(-10 % -3);//-1
System.out.println(-10.5 % -3);//-1.5
}
}
运行结果: