Java有關浮點數精度——指定精確小數位


一般有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
View Code

2.String.format()

double num = 3.14159265358979323;
System.out.println(String.format("%.2f", num));//輸出3.14
View Code

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM