bigdecimal如何保留兩位有效數(shù)字

小億
1590
2023-09-09 11:20:26

要保留兩位有效數(shù)字,可以使用BigDecimal的setScale方法來(lái)設(shè)置精度。

首先,需要將要操作的數(shù)值轉(zhuǎn)換為BigDecimal對(duì)象??梢允褂肂igDecimal的構(gòu)造函數(shù)來(lái)完成轉(zhuǎn)換,例如:

BigDecimal number = new BigDecimal("3.1415926");

然后,使用setScale方法來(lái)設(shè)置精度。setScale方法接受兩個(gè)參數(shù),第一個(gè)參數(shù)是要保留的小數(shù)位數(shù),第二個(gè)參數(shù)是舍入模式。舍入模式可以使用BigDecimal提供的常量來(lái)指定,常見(jiàn)的有ROUND_UP(向上舍入)、ROUND_DOWN(向下舍入)、ROUND_HALF_UP(四舍五入)等。

例如,要保留兩位有效數(shù)字并進(jìn)行四舍五入,可以這樣設(shè)置精度:

BigDecimal roundedNumber = number.setScale(2, BigDecimal.ROUND_HALF_UP);

最后,可以打印輸出結(jié)果:

System.out.println(roundedNumber);

完整示例代碼如下:

import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal number = new BigDecimal("3.1415926");
BigDecimal roundedNumber = number.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(roundedNumber);
}
}

輸出結(jié)果為:

3.14

0