一、Java中的取整函數
Java中,取整函數包括Math.floor(), Math.ceil(), Math.round(), 和一些強制類型轉換方法,如(int), (long)等。
二、Math.floor()和Math.ceil()
Math.floor() 和 Math.ceil() 均是向下取整和向上取整的方法。
double num1 = 3.7; double num2 = 3.2; System.out.println(Math.floor(num1)); // 輸出3.0 System.out.println(Math.ceil(num2)); // 輸出4.0
上面的代碼中,Math.floor() 將3.7向下取整為3,Math.ceil() 將3.2向上取整為4。
三、Math.round()
Math.round() 函數介於向上取整和向下取整之間,這個函數返回一個數最接近的整數。
double num1 = 3.4; double num2 = 3.5; System.out.println(Math.round(num1)); // 輸出3 System.out.println(Math.round(num2)); // 輸出4
上述代碼中,Math.round() 將 3.4 取整為 3,將 3.5 取整為 4。
四、強制類型轉換
Java中的基本數據類型可以進行強制類型轉換,將一個數據類型轉換為另一個數據類型。比如將 double 轉換成 int。
double num1 = 3.7; System.out.println((int)num1); // 輸出3
上述代碼將 3.7 強制轉換為 int 類型,結果為 3。
五、舍入模式
Java中提供了一系列的舍入模式。
- BigDecimal.ROUND_UP:向遠離零的方向舍入。
- BigDecimal.ROUND_DOWN:向接近零的方向舍入。
- BigDecimal.ROUND_CEILING:向正無窮方向舍入。
- BigDecimal.ROUND_FLOOR:向負無窮方向舍入。
- BigDecimal.ROUND_HALF_UP:四捨五入,五舍六入。
- BigDecimal.ROUND_HALF_DOWN:四捨五入,五不舍六入。
- BigDecimal.ROUND_HALF_EVEN:銀行家算法,類似於 ROUND_HALF_UP,但是當末尾數字為5時,採用“偶數舍”的方法。
以ROUND_HALF_UP為例:
BigDecimal num1 = new BigDecimal("3.45"); BigDecimal num2 = new BigDecimal("3.55"); System.out.println(num1.setScale(1, BigDecimal.ROUND_HALF_UP)); // 輸出3.4 System.out.println(num2.setScale(1, BigDecimal.ROUND_HALF_UP)); // 輸出3.6
上述代碼中,setScale() 方法使用 ROUND_HALF_UP 舍入模式將 3.45 設置為保留1位小數,結果為 3.4,將 3.55 設置為保留1位小數,結果為 3.6。
六、四捨五入到指定小數位數
可以使用 DecimalFormat 類結合 Math.round() 方法來實現四捨五入到指定小數位數。
double num = 3.1415926; DecimalFormat df = new DecimalFormat("#.00"); String result = df.format(Math.round(num*100)/100.0); System.out.println(result); // 輸出3.14
上述代碼中,將 double 類型的 num 數值四捨五入保留兩位小數,結果為 3.14。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/233778.html