在編程開發中,有些時候需要對數字進行四捨五入、向上取整、向下取整等操作,在Java中提供了roundingmode用於控制舍入行為。該類定義了一些用於指定數字的舍入模式的常量。在本文中,我們將深入了解roundingmode常量以及其應用場景。
一、roundingmode.up
RoundingMode.UP 是 rounding mode 的一種。它可以用於舍入 BigDecimal 中的數字。舍入後的結果將被得到一個較大的值。下面是一個簡單的示例:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class RoundingModeDemo {
public static void main(String[] args) {
BigDecimal num = new BigDecimal("3.1415926");
BigDecimal result = num.setScale(2, RoundingMode.UP);
System.out.println(result);
}
}
//輸出結果:3.15
在上述代碼中,我們將數字 3.1415926 舍入到小數點後兩位,並使用RoundingMode UP選擇舍入方法,結果將是3.15。
二、 roundingmode 四捨五入
RoundingMode.ROUND_HALF_UP 是 rounding mode 的一種。 它可以用於舍入 BigDecimal 中的數字。舍入後的結果將四捨五入。 下面是一個簡單的示例:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class RoundingModeDemo {
public static void main(String[] args) {
BigDecimal num = new BigDecimal("3.1415926");
BigDecimal result = num.setScale(2, RoundingMode.HALF_UP);
System.out.println(result);
}
}
//輸出結果:3.14
在上述代碼中,我們將數字 3.1415926 舍入到小數點後兩位,並使用RoundingMode ROUND_HALF_UP 選擇舍入方法, 最終結果將四捨五入為 3.14。
三、roundingmode向上取整
RoundingMode.CEILING 是 rounding mode 的一種。它可以用於舍入 BigDecimal 中的數字。舍入後得到的結果將被舍入到較大的值。 下面是一個簡單的示例:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class RoundingModeDemo {
public static void main(String[] args) {
BigDecimal num = new BigDecimal("3.1415926");
BigDecimal result = num.setScale(2, RoundingMode.CEILING);
System.out.println(result);
}
}
//輸出結果:3.15
在此代碼中,我們將數字 3.1415926舍入到小數點後兩位,並使用了RoundingMode CEILING選擇舍入方法,結果將被舍入到一個較大的值3.15。
四、roundingmode半向上取捨
RoundingMode.HALF_UP 是 rounding mode 的一種。它可以用於舍入 BigDecimal 中的數字。舍入後的結果將半向上舍入。 下面是一個簡單的示例:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class RoundingModeDemo {
public static void main(String[] args) {
BigDecimal num = new BigDecimal("3.5456");
BigDecimal result1 = num.setScale(2, RoundingMode.HALF_UP);
BigDecimal result2 = num.setScale(3, RoundingMode.HALF_UP);
System.out.println(result1); // 3.55
System.out.println(result2); // 3.546
}
}
在此代碼中,我們將數字 3.5456 舍入到小數點後兩位或小數點後三位,並使用RoundingMode HALF_UP 選擇舍入方法,最終結果將被半向上舍入。
五、roundingmode向下取整
RoundingMode.DOWN 是 rounding mode 的一種。它可以用於舍入 BigDecimal 中的數字。結果將被舍入到一個較小的值。 下面是一個簡單的示例:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class RoundingModeDemo {
public static void main(String[] args) {
BigDecimal num = new BigDecimal("3.9996");
BigDecimal result1 = num.setScale(2, RoundingMode.DOWN);
BigDecimal result2 = num.setScale(3, RoundingMode.DOWN);
System.out.println(result1); // 3.99
System.out.println(result2); // 3.999
}
}
在此代碼中,我們將數字 3.9996 舍入到小數點後兩位或小數點後三位,並使用了RoundingMode DOWN選擇舍入方法,最終結果將被舍入到較小的值。
六、roundingmode半向下取捨
RoundingMode.HALF_DOWN是 rounding mode 的一種。它可以用於舍入 BigDecimal 中的數字。結果將被半向下舍入。 下面是一個簡單的示例:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class RoundingModeDemo {
public static void main(String[] args) {
BigDecimal num = new BigDecimal("3.5456");
BigDecimal result1 = num.setScale(2, RoundingMode.HALF_DOWN);
BigDecimal result2 = num.setScale(3, RoundingMode.HALF_DOWN);
System.out.println(result1); // 3.54
System.out.println(result2); // 3.546
}
}
在此代碼中,我們將數字 3.5456 舍入到小數點後兩位或者小數點後三位,並使用了 RoundingMode HALF_DOWN 選擇舍入方法,結果將被半向下舍入。
七、roundingmode向下取整
RoundingMode.FLOOR是 rounding mode 的一種。它可以用於舍入 BigDecimal 中的數字。 結果將被舍入到一個較小的值。 下面是一個簡單的示例:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class RoundingModeDemo {
public static void main(String[] args) {
BigDecimal num = new BigDecimal("3.9996");
BigDecimal result1 = num.setScale(2, RoundingMode.FLOOR);
BigDecimal result2 = num.setScale(3, RoundingMode.FLOOR);
System.out.println(result1); // 3.99
System.out.println(result2); // 3.999
}
}
在此代碼中,我們將數字 3.9996 舍入到小數點後兩位或小數點後三位,並使用了RoundingMode FLOOR選擇舍入方法,結果將被舍入到一個較小的值。
八、小結
在 Java 中,RoundingMode 是一個非常有用的類,它提供了多種舍入模式以滿足多種舍入需求。 對於舍入行為,應該根據具體的需求情況選擇相應的舍入方式。 在編寫代碼時,在選擇適當的舍入方式後,應避免使用浮點數和其他帶小數的基本類型進行計算,從而保證計算的精確性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/253184.html
微信掃一掃
支付寶掃一掃