介绍
对数字进行四舍五入意味着获取它的近似值。在 Java 中,有几种方法可以对浮点数进行四舍五入。在本实验中,我们将学习如何使用 Java 中的不同方法对数字进行四舍五入。
对数字进行四舍五入意味着获取它的近似值。在 Java 中,有几种方法可以对浮点数进行四舍五入。在本实验中,我们将学习如何使用 Java 中的不同方法对数字进行四舍五入。
printf()
方法进行四舍五入我们可以使用 System.out.printf()
方法将四舍五入后的数字打印到控制台。通过精度修饰符,我们可以指定要保留的小数位数。
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
float g = 9.807f;
System.out.printf("Pi: %.2f %n", pi); // 打印 Pi: 3.14
System.out.printf("One Third: %.3f %n", oneThird); // 打印 One Third: 0.333
System.out.printf("Gravitation Acceleration(g): %.0f", g); // 打印 Gravitation Acceleration(g): 10
}
要运行代码,请打开终端并进入代码文件所在的目录。然后,使用 javac filename.java
编译代码。之后,使用 java filename
运行它。
DecimalFormat()
方法进行四舍五入我们可以使用 DecimalFormat
类来指定数字的格式化模式。通过井号(#)可以指定小数位数,然后使用 format()
方法对数字进行四舍五入。
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
float g = 9.807f;
DecimalFormat d1 = new DecimalFormat("#.##");
DecimalFormat d2 = new DecimalFormat("#.###");
DecimalFormat d3 = new DecimalFormat("#");
System.out.println("Pi: " + d1.format(pi)); // 打印 Pi: 3.14
System.out.println("One Third: " + d2.format(oneThird)); // 打印 One Third: 0.333
System.out.println("Gravitation Acceleration(g):" + d3.format(g)); // 打印 Gravitation Acceleration(g): 10
}
要运行代码,请打开终端并进入代码文件所在的目录。然后,使用 javac filename.java
编译代码。之后,使用 java filename
运行它。
Math.round()
方法进行四舍五入我们可以使用 Math.round()
来对小数进行四舍五入。当我们需要将数字四舍五入到零位小数时,可以使用此方法。
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
float g = 9.807f;
System.out.println("Pi: " + Math.round(pi)); // 打印 Pi: 3
System.out.println("One Third: " + Math.round(oneThird)); // 打印 One Third: 0
System.out.println("Gravitation Acceleration(g):" + Math.round(g)); // 打印 Gravitation Acceleration(g): 10
}
要运行代码,请打开终端并进入代码文件所在的目录。然后,使用 javac filename.java
编译代码。之后,使用 java filename
运行它。
如果我们需要将小数四舍五入到多于零位小数,可以创建自己的方法来实现。以下方法接受一个小数值和要保留的小数位数作为参数,并返回四舍五入后的结果。
public static double round(double num, int places) {
double scale = Math.pow(10, places);
double roundedNum = Math.round(num * scale) / scale;
return roundedNum;
}
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
float g = 9.807f;
System.out.println("Pi: " + round(pi, 2)); // 打印 Pi: 3.14
System.out.println("One Third: " + round(oneThird, 3)); // 打印 One Third: 0.333
System.out.println("Gravitation Acceleration(g):" + round(g, 0)); // 打印 Gravitation Acceleration(g): 10.0
}
要运行代码,请打开终端并进入代码文件所在的目录。然后,使用 javac filename.java
编译代码。之后,使用 java filename
运行它。
BigDecimal
进行四舍五入我们可以使用 BigDecimal
类的 round()
方法对数字进行四舍五入。以下代码展示了如何使用 BigDecimal
类的 round()
方法对小数进行四舍五入。
public static void main(String args[]) {
BigDecimal pi = new BigDecimal("3.14159265359");
pi = pi.setScale(4, RoundingMode.HALF_UP); // 四舍五入到 4 位小数
System.out.println("Pi: " + pi); // 打印 Pi: 3.1416
}
要运行代码,请打开终端并进入代码文件所在的目录。然后,使用 javac filename.java
编译代码。之后,使用 java filename
运行它。
BigDecimal
对非 BigDecimal
数字进行四舍五入如果数字不是 BigDecimal
类型,我们可以先将其转换,然后使用 BigDecimal
类进行四舍五入。以下方法可用于对 double
数据类型的数字进行四舍五入。
public static double round(double num, int places) {
BigDecimal b = new BigDecimal(Double.toString(num));
b = b.setScale(places, RoundingMode.HALF_UP);
return b.doubleValue();
}
public static void main(String args[]) {
double pi = 3.14159265359;
double oneThird = 1.0/3.0;
double g = 9.807f;
pi = round(pi, 4);
oneThird = round(oneThird, 3);
g = round(g, 0);
System.out.println("Pi: " +pi); // 打印 Pi: 3.1416
System.out.println("One Third: " + oneThird); // 打印 One Third: 0.333
System.out.println("Gravitation Acceleration(g):" + g); // 打印 Gravitation Acceleration(g): 10.0
}
要运行代码,请打开终端并进入代码文件所在的目录。然后,使用 javac filename.java
编译代码。之后,使用 java filename
运行它。
在本实验中,我们学习了在 Java 中对小数进行四舍五入的不同方法。我们使用 printf()
和 DecimalFormat()
进行简单的四舍五入,使用 Math.round()
将数字四舍五入到零位小数,使用 BigDecimal
进行精确的四舍五入,以及使用 DoubleRounder
通过 decimal4j
库进行四舍五入。我们还创建了一个自定义方法,可以将任何小数四舍五入到任意小数位数。