在Java中,取整是經常用到的操作。取整的方式也有很多種,包括向上取整、向下取整、四捨五入、截斷等。在不同場景下,選擇不同的取整方式可以得到預期的結果。
一、向上取整
向上取整指的是將小數向正無窮方向取整,也就是取最小的整數,使其不小於原數。
Java中向上取整的方法是使用Math.ceil()函數。該函數的語法如下:
public static double ceil(double a)
該函數返回一個小於等於參數(a)的最小的整數。例如:
Math.ceil(3.14); // 4.0 Math.ceil(-3.14); // -3.0
在這個例子中,Math.ceil(3.14)的結果是4.0,Math.ceil(-3.14)的結果是-3.0。這是因為向上取整會把小數向正無窮方向取整,這種情況下,結果為4.0和-3.0。
二、向下取整
向下取整指的是將小數向負無窮方向取整,也就是取最大的整數,使其不大於原數。
Java中向下取整的方法是使用Math.floor()函數。該函數的語法如下:
public static double floor(double a)
該函數返回一個大於等於參數(a)的最大的整數。例如:
Math.floor(3.14); // 3.0 Math.floor(-3.14); // -4.0
在這個例子中,Math.floor(3.14)的結果是3.0,Math.floor(-3.14)的結果是-4.0。這是因為向下取整會把小數向負無窮方向取整,這種情況下,結果為3.0和-4.0。
三、四捨五入
四捨五入指的是將小數按照一定的規則進行上下取整。在Java中,有兩種方法可以實現四捨五入操作,分別為Math.round()和BigDecimal.setScale()。
3.1 Math.round()
Math.round()方法是Java中內置的方法,可以實現四捨五入操作。其語法如下:
public static long round(double a) public static int round(float a)
Math.round()方法返回一個最接近參數(a)的長整型或整型,其數值等於數學上最接近參數(a)的整數。例如:
Math.round(3.14); // 3 Math.round(3.5); // 4 Math.round(-3.14); // -3 Math.round(-3.5); // -3
在上面的例子中,Math.round()方法將小數按照四捨五入的規則進行取整。
3.2 BigDecimal.setScale()
BigDecimal.setScale()方法是Java中提供的執行精確小數運算的類,也可以實現四捨五入操作。其語法如下:
public BigDecimal setScale(int newScale, RoundingMode roundingMode)
該方法將BigDecimal類型的數值進行四捨五入,將保留指定小數位數的數字。例如:
BigDecimal bd = new BigDecimal("3.1415926");
bd = bd.setScale(2, RoundingMode.HALF_UP); // 四捨五入,保留兩位小數
上面的例子中,我們首先將字元串”3.1415926″轉成BigDecimal類型的數值,然後對其進行四捨五入,保留2位小數得到結果:
System.out.println(bd); // 3.14
四、截斷
截斷指的是將小數直接捨棄掉剩下的位數,不進行四捨五入或向上取整等操作。
在Java中,可以使用強制類型轉換實現截斷操作。例如:
double d = 3.14; int i = (int)d; // 截取小數部分,i的值為3
在上面的例子中,我們首先將小數3.14強制轉換成整型,直接捨棄掉小數部分得到整數3。
五、小結
在Java中,取整的方式有很多種,包括向上取整、向下取整、四捨五入、截斷等。在不同場景下,選擇不同的取整方式可以得到預期的結果。無論是內置函數還是自己編寫方法,都可以實現Java的取整操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/243428.html
微信掃一掃
支付寶掃一掃