浅析java中的取整()和求余(%)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅析java中的取整()和求余(%)
1.取整运算符
取整从字⾯意思理解就是被除数到底包含⼏个除数,也就是能被整除多少次,那么它有哪些需要注意的地⽅呢?先看下⾯的两端代码:
int a = 10;
int b = 3;
double c= a / b;
System.out.println(c);
第⼀段代码的运⾏结果是3.0,其中double c = a / b;//c = (10/3) = (double)3 = 3.0,这⾥⾯涉及到⼀个低精度到⾼精度的隐式装换。
int a = 10;
int b = 3;
double c= (double)a / b;
System.out.println(c);
第⼆段代码的运⾏结果是3.3333333333333335,其中double c = (double)a / b;等价于double c= 10.0 / 3.0;
减乘除计算,会先统⼀操作数的精度,其规则是先统⼀成精度⾼的数。
double型/int型、int型/double型,最后都转成double型/double型。
2.求余运算符
取余运算符是%是⼀个双⽬运算符,它的操作数通常是正整数也可以是负数甚⾄是浮点数,如果负数参与此运算,则结果的正负取决于前⾯⼀个数是整数还是负数。
对于整数,java的取余运算规则如下
a%b=a-(a/b)*b
5%3=5-(5/3)*3=2
5%-3=5-(5/-3)*-3=2
-5%3=-5-(-5/3)*3=-2
-5%-3=-5-(-5/-3)*-3=-2
如果操作数中有浮点数则采⽤的规则为
a%b=a-(b*q),这⾥q=int(a/b)
5.2%3.1=5.2-1*3.1=2.1
5.2%-3.1=5.2-(-1)*(-3.1)=2.1
-5.2%3.1=-5.1-(-1)*3.1=-2.1
-5.2%-3.1=-5.1-(-1)*(-3.1)=-2.1
⽰例代码:
public class Division_remainder {
public static void main(String[] args) {
int a = 13 / 5;
int b = 13 % 5;
int c = 5 / 13;
int d = 5 % 13;
int e = 13 / -5;
int f = -13 / 5;
int h = -13 % 5;
int j = 13 % -5;
System.out.println(a + "," + b);
System.out.println(c + "," + d);
System.out.println(e + "," + f);
System.out.println(h + "," + j);
}
结果为:
2,3
0,5
-2,-2
-3,3
再来⼀个⼀个分析:
a = 13 / 5,a = 2,其实就是数学上的13 / 5 ,结果为2。
b = 13 % 5,b = 3,这也是数学上的运算,得出余数为3。
c = 5 / 13,c = 0,因为被除数⼩于除数,结果可以看成0.x,但是int类型是整数类型,所以结果只为0。
d = 5 % 13,d = 5,数学上规定:如果被除数⽐除数⼩,商是0,余数就是被除数本⾝。
e和f不⽤说了,结果都为-2。
但是h和j怎么是⼀个-3⼀个3呢,因为取余运算的符号是根据第⼀个运算数决定的,-13 % 5结果是-3,⽽13 % -5结果则是3。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。