如何在 Java 中把双精度数四舍五入到小数点后两位数
Payel Ganguly
2023年1月30日
2020年10月15日
-
使用
Math.round(double*100.0)/100.0
将一个双精度数四舍五入到小数点后两位 -
使用
BigDecimal
将一个双精度数舍入到两个小数位上 -
使用
DecimalFormat
将一个双精度数四舍五入到小数点后两位 -
使用
Apache Common
Math 将一个双精度数值四舍五入到两位小数
在上一篇教程文章中,我们已经通过详细的实例了解了如何在 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.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 应用程序,建议遵循前三种方法。