1. 程式人生 > >java中的取整(/)和求餘(%)

java中的取整(/)和求餘(%)

1.取整運算子

取整從字面意思理解就是被除數到底包含幾個除數,也就是能被整除多少次,那麼它有哪些需要注意的地方呢?先看下面的兩端程式碼:
        int a = 10;
    	int b = 3;
    	double c= a / b;
        System.out.println(c);
第一段程式碼的執行結果是3.0,其中doublec = 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