java中浅析的取整(/)和求余(%)

  


  

  

取整从字面意思理解就是被除数到底包含几个除数,也就是能被整除多少次,那么它有哪些需要注意的地方呢?先看下面的两端代码:
  

        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中浅析的取整(/)和求余(%)