如何在 Java 中把雙精度數四捨五入到小數點後兩位數
    
    
            Payel Ganguly
    2023年10月12日
    
    Java
    Java Double
    
- 
          
            使用 Math.round(double*100.0)/100.0將一個雙精度數四捨五入到小數點後兩位
- 
          
            使用 BigDecimal將一個雙精度數舍入到兩個小數位上
- 
          
            使用 DecimalFormat將一個雙精度數四捨五入到小數點後兩位
- 
          
            使用 Apache CommonMath 將一個雙精度數值四捨五入到兩位小數
 
在上一篇教程文章中,我們已經通過詳細的例項瞭解瞭如何在 Java 中使用各種方法將 Array 轉換為 ArrayList。我們將通過不同形式的場景分析來了解更多型別的 Java 使用方法。
在這篇教程文章中,我們將討論使用 Java 將一個雙精度數四捨五入到小數點後兩位的方法。有四種方法可以將一個雙精度數四捨五入到小數點後兩位,如 Math.round()、BigDecimal 使用 setScale() 方法、DecimalFormat 和 Apache Common 庫。
我們通過例項來討論每種方式。
使用 Math.round(double*100.0)/100.0 將一個雙精度數四捨五入到小數點後兩位
在 Java 中,Math.round() 方法用於將一個給定的數字四捨五入到其最近的整數。由於在本文中,我們將學習將一個雙精度數四捨五入到小數點後兩位,所以 Math.round() 的應用將包括 (double*100.0)/100.0。
讓我們按照下面的例子進行操作。
import java.io.*;
import java.lang.*;
import java.util.*;
public class Main {
  public static void main(String[] args) {
    double d = 7435.9876;
    double roundDbl = Math.round(d * 100.0) / 100.0;
    System.out.println("Rounded Double value: " + roundDbl);
  }
}
輸出:
Rounded Double value: 7435.99
使用 BigDecimal 將一個雙精度數舍入到兩個小數位上
    
這樣,我們可以先將雙精度數轉換為 BigDecimal,然後使用 setScale() 方法將轉換後的 BigDecimal 四捨五入到兩位小數。讓我們來理解下面的例子。
import java.io.*;
import java.lang.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
public class Main {
  public static void main(String[] args) {
    double val1 = 4312.186462;
    System.out.println("Double value: " + val1);
    BigDecimal bd = new BigDecimal(val1).setScale(2, RoundingMode.HALF_UP);
    double val2 = bd.doubleValue();
    System.out.println("Rounded Double value: " + val2);
  }
}
輸出:
Double value: 4312.186462
Rounded Double value: 4312.19
使用 DecimalFormat 將一個雙精度數四捨五入到小數點後兩位
    
我們也可以使用 DecimalFormat 將雙精度數值四捨五入到小數點後兩位。讓我們在下面的例子中進行討論。
import java.io.*;
import java.lang.*;
import java.text.DecimalFormat;
import java.util.*;
public class Main {
  public static void main(String[] args) {
    double val1 = 6482.236789;
    System.out.println("Double value: " + val1);
    DecimalFormat df = new DecimalFormat("###.##");
    System.out.println("Rounded Double value (DecimalFormat): " + df.format(val1));
  }
}
輸出:
Double value: 6482.236789
Rounded Double value: 6482.24
使用 Apache Common Math 將一個雙精度數值四捨五入到兩位小數
在 Java 中,有一種特殊的數學庫用來將雙精度數四捨五入到小數點後兩位,它就是 Apache Common。讓我們在下面的例子中討論它的使用。
我們需要在 Java 專案中的 xml 檔案中新增這個庫的依賴關係。
<dependency>
    <groudId>org.apache.commons</groudId>
    <artifactId>commons-math3</artifactId> 
    <version>3.6.1</version>
</dependency>
現在,讓我們檢查一下 Apache 庫對將雙精度數四捨五入到小數點後兩位的實現。
import java.io.*;
import java.lang.*;
import java.util.*;
import org.apache.commons.math3.util.Precision;
public class Main {
  public static void main(String[] args) {
    double input = 9476.2351;
    double roundedDbl = Precision.round(input, 2);
    System.out.println("Rounded Double value: " + roundedDbl);
  }
}
輸出:
Rounded Double value: 9476.24
對於簡單的 Java 應用程式,建議遵循前三種方法。
        Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe