如何在 Java 中把雙精度數四捨五入到小數點後兩位數

Payel Ganguly 2023年1月30日 2020年10月15日
  1. 使用 Math.round(double*100.0)/100.0 將一個雙精度數四捨五入到小數點後兩位
  2. 使用 BigDecimal 將一個雙精度數舍入到兩個小數位上
  3. 使用 DecimalFormat 將一個雙精度數四捨五入到小數點後兩位
  4. 使用 Apache Common Math 將一個雙精度數值四捨五入到兩位小數
如何在 Java 中把雙精度數四捨五入到小數點後兩位數

在上一篇教程文章中,我們已經通過詳細的例項瞭解瞭如何在 Java 中使用各種方法將 Array 轉換為 ArrayList。我們將通過不同形式的場景分析來了解更多型別的 Java 使用方法。

在這篇教程文章中,我們將討論使用 Java 將一個雙精度數四捨五入到小數點後兩位的方法。有四種方法可以將一個雙精度數四捨五入到小數點後兩位,如 Math.round()BigDecimal 使用 setScale() 方法、DecimalFormatApache Common 庫。

我們通過例項來討論每種方式。

使用 Math.round(double*100.0)/100.0 將一個雙精度數四捨五入到小數點後兩位

在 Java 中,Math.round() 方法用於將一個給定的數字四捨五入到其最近的整數。由於在本文中,我們將學習將一個雙精度數四捨五入到小數點後兩位,所以 Math.round() 的應用將包括 (double*100.0)/100.0

讓我們按照下面的例子進行操作。

import java.util.*;
import java.lang.*;
import java.io.*;

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.util.*;
import java.lang.*;
import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;

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.util.*;
import java.lang.*;
import java.io.*;
import java.text.DecimalFormat;

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.util.*;
import java.lang.*;
import java.io.*;
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 應用程式,建議遵循前三種方法。

相關文章 - Java Double