介绍
对数字进行四舍五入意味着获取它的近似值。在 Java 中,有几种方法可以对浮点数进行四舍五入。在本实验中,我们将学习如何使用 Java 中的不同方法对数字进行四舍五入。
对数字进行四舍五入意味着获取它的近似值。在 Java 中,有几种方法可以对浮点数进行四舍五入。在本实验中,我们将学习如何使用 Java 中的不同方法对数字进行四舍五入。
我们可以使用 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 类来指定数字的格式化模式。通过井号(#)可以指定小数位数,然后使用 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() 来对小数进行四舍五入。当我们需要将数字四舍五入到零位小数时,可以使用此方法。
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 类的 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 类进行四舍五入。以下方法可用于对 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 库进行四舍五入。我们还创建了一个自定义方法,可以将任何小数四舍五入到任意小数位数。