Java中double型別保留兩位小數
阿新 • • 發佈:2019-01-25
- java中對double型別的小數經常會有小數點後邊保留一位小數或者保留兩位小數的需求。
- javaAPi中提供了一個專門的類BigDecimal,用來對超過16位有效位的數進行精確的運算。
- 使用步驟:
//定義一個double型別的數字
double number = 3.25;
//先將double型別的數字轉換為BigDecimal型別。
BigDecimal bigDecimal = new BigDecimal(number);
//呼叫BigDecimal的 setScale(int newScale, int roundingMode)方法
//參1 指保留幾位小數 參2 指舍位時候的模式
//遠離0的模式 3.21--> 3.3
BigDecimal scaleNumber1 = bigDecimal.setScale(1, BigDecimal.ROUND_UP);
//接近0的模式 3.21--> 3.2
BigDecimal scaleNumber2 = bigDecimal.setScale(1, BigDecimal.ROUND_DOWN);
//接近正無窮大的模式 3.21--> 3.3
BigDecimal scaleNumber3 = bigDecimal.setScale (1, BigDecimal.ROUND_CEILING);
//接近負無窮大的模式 3.21--> 3.2
BigDecimal scaleNumber4 = bigDecimal.setScale(1, BigDecimal.ROUND_FLOOR);
//5舍6入的模式 3.21--> 3.2 3.25-->3.2 3.26-->3.3
BigDecimal scaleNumber5 = bigDecimal.setScale(1, BigDecimal.ROUND_HALF_DOWN);
//4舍5入的模式 3.24--> 3.2 3.25--> 3.3
BigDecimal scaleNumber6 = bigDecimal.setScale(1, BigDecimal.ROUND_HALF_UP);
System.out.println(scaleNumber1);
System.out.println(scaleNumber2);
System.out.println(scaleNumber3);
System.out.println(scaleNumber4);
System.out.println(scaleNumber5);
System.out.println(scaleNumber6);
- 根據自己的需求來確定小數點的位數即可。
- 下面是api中模式的解釋。