取整从字面意思理解就是被除数到底包含几个除数,也就是能被整除多少次,那么它有哪些需要注意的地方呢?先看下面的两端代码:
int=10; int b=3; 双c=a/b; System.out.println (c); >之前第一段代码的运行结果是3.0,,其中double c=, a /, b;//c =,(10/3),=,(双)3,=,3.0,这里面涉及到一个低精度到高精度的隐式装换。
int=10; int b=3; 双c=(双)a/b; System.out.println (c); >之前第二段代码的运行结果是3.3333333333333335,其中double c=,(双)a /, b;等价于double c=, 10.0,/, 3.0;
减乘除计算,会先统一操作数的精度,其规则是先统一成精度高的数。
双型/int型,int型/双型,最后都转成双型/双型。
取余运算符是%是一个双目运算符,它的操作数通常是正整数也可以是负数甚至是浮点数,如果负数参与此运算,则结果的正负取决于前面一个数是整数还是负数。
对于整数,java的取余运算规则如下,
% b=a - b (a/b) * 3=5 - 5% (5/3)* 3=2 3=5 - 5% (5/-3)* 3=2 3=5 - -5% (5/3)* 3=2 3=5 - -5% (-5/-3)* 3=2 >之前如果操作数中有浮点数则采用的规则为,
% b=(b * q),这里q=int (a/b) 5.2% 5.2 3.1=1 * 3.1=2.1 -3.1=5.2 - 5.2% (1)* (-3.1)=2.1 3.1=-5.1 - 3.1 (1)* -5.2%=-2.1 -3.1=-5.1 - -5.2% (1)* (-3.1)=-2.1 >之前
公开课Division_remainder { 公共静态void main (String [] args) { int=13/5; int b=5 13%; int c=5/13; int 13 d=5%; int e=13/-5; int f=-13/5; int h=5 -13%; int j=5 13%; 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再来一个一个分析:
=13/5,=2,其实就是数学上的13/5,结果为2。
5 b=13%, b=3,这也是数学上的运算,得出余数为3。
c=5/13, c=0,因为被除数小于除数,结果可以看成0。x,但是int类型是整数类型,所以结果只为0。
13 d=5%, d=5,数学上规定:如果被除数比除数小,商是0,余数就是被除数本身。
e和f不用说了,结果都为2。
但是h和j怎么是一个3一个3呢,因为取余运算的符号是根据第一个运算数决定的,-13% 5结果是3,而13% 5结果则是3。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
java中浅析的取整(/)和求余(%)