❶ java中的一個除法的取整問題,如下圖我知道是因為取整的原因但是我想清楚是怎樣一個過程
原理很簡單,在java中所有名文寫在代碼里的數字,都被編譯器按照int類型處理,int類型變數之間進行四版則運算結果還是權int類型的
time / (1000 * 60 * 60 * 24 * 365)
這個語句中,括弧內的乘法計算結果就是int類型的,但是這個乘積的結果超過了int的表示範圍了int 能表示的最大值 Integer.MAX_VALUE =2147483647 (本人系統MacOS10.15, jdk1.8, 不同系統不同版本jdk下,這個值可能不同,但是相差不大)
而你表達式括弧內的乘法結果是31536000000,已經遠大於int的表示範圍了,因此這個計算結果是越界的,錯誤的,所以最終得到的結果是錯誤的
把第一個計算數改成long類型的,計算結果就會是正確的了
❷ java中如何取整
java向上取整、向下取整、四捨五入取整方法詳解
網頁鏈接
❸ java中如何取整
通過(int)方式進行取整,(int)是強轉,強制把其他類型轉換成整型。
語法:
int b =(int)浮點型變數;
例如:專
doublea=1.22;
intb=(int)a;//強轉double為整型。,取整,結屬果為1
❹ 在java中怎麼對一個數字取整
public class EXC {
public static void main(String[] args) {
//如果是將復 一個制 float或double類型的小數 轉換為整數 如下:
//利用java的強制類型轉換規則
double d = 12.3;
int i = (int)d;
System.out.println(i);
//如果是將一個表示小數的 字元串轉換為整數 如下:
//利用Integer包裝類
String s = "12.3";// 或12.3f
i = Integer.parseInt(s.split("\\.")[0]);
System.out.println(i);
}
}