一般有4種方法,下面進行簡單總結。
1.BigDecimal.setScale(int newScale,RoundingMode roundingMode)
(1)語法
參數newScale:保留的小數位數
roundingMode:保留模式,包括
BigDecimal.ROUND_DOWN :直接刪除
BigDecimal.ROUND_UP :進位
BigDecimal.ROUND_HALF_UP:四舍五入
BigDecimal.ROUND_HALF_DOWN:若舍棄部分>.5,則作ROUND_UP; 否則,作ROUND_DOWN。
更詳盡的可參考此博:https://blog.csdn.net/alanzyy/article/details/8465098
(2)代碼

BigDecimal a = new BigDecimal("3.14159265358979323").setScale(2,BigDecimal.ROUND_DOWN); System.out.println(a);//輸出3.14 BigDecimal b = new BigDecimal("3.14159265358979323").setScale(2,BigDecimal.ROUND_UP); System.out.println(b);//輸出3.15 BigDecimal c = new BigDecimal("3.14159265358979323").setScale(3,BigDecimal.ROUND_HALF_UP); System.out.println(c);//輸出3.142 BigDecimal d = new BigDecimal("3.1415").setScale(3,BigDecimal.ROUND_HALF_DOWN); System.out.println(d);//輸出3.141
2.String.format()

double num = 3.14159265358979323; System.out.println(String.format("%.2f", num));//輸出3.14
3.DecimalFormat.format()
double num = 3.14159265358979323 DecimalFormat decimalFormat = new DecimalFormat("#.00"); System.out.println( decimalFormat.format(num));//輸出3.14
4.NumberFormat.format()
1 double num = 3.14159265358979323; 2 NumberFormat numberFormat = NumberFormat.getNumberInstance(); numberFormat.setMaximumFractionDigits(2); 3 System.out.println( numberFormat.format(num));//輸出3.14