java中的取整(/)和求餘(%)
阿新 • • 發佈:2019-02-16
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,
這裡面涉及到一個低精度到高精度的隱式裝換。
第二段程式碼的執行結果是3.3333333333333335,其中double c = (double)a / b;等價於double c= 10.0 / 3.0; 減乘除計算,會先統一運算元的精度,其規則是先統一成精度高的數。int a = 10; int b = 3; double c= (double)a / b; System.out.println(c);
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