📜  如何在java中截断小数(1)

📅  最后修改于: 2023-12-03 15:24:32.538000             🧑  作者: Mango

如何在Java中截断小数

在Java中,我们经常需要对小数进行截断,保留一定精度的小数。本文将介绍Java中截断小数的几种方法。

1. DecimalFormat类

DecimalFormat类是Java中一个常用的格式化数值的类,可以通过它来对小数进行格式化。我们可以使用DecimalFormat类的setMaximumFractionDigits(int digits)方法来设置最大小数位数,然后使用format(double number)方法进行格式化输出,如下所示:

double num = 3.14159;
DecimalFormat df = new DecimalFormat("#.00");//保留两位小数
System.out.println(df.format(num)); //输出结果为:3.14
2. BigDecimal类

BigDecimal类是Java中处理高精度小数的类,我们可以通过设置它的精度来实现小数截断。下面的代码演示了如何使用BigDecimal类来截断小数:

BigDecimal bd = new BigDecimal("3.14159");
bd = bd.setScale(2, RoundingMode.DOWN);//保留两位小数,采用截断模式
System.out.println(bd.doubleValue());//输出结果为:3.14
3. Math类

Math类是Java中常用的数学类,提供了很多与数学计算相关的方法。对于小数截断,我们可以使用它的round(double a, int scale)方法,如下所示:

double num = 3.14159;
double result = Math.round(num * 100) / 100.0;//保留两位小数,采用四舍五入模式
System.out.println(result);//输出结果为:3.14
4. String.format方法

Java中的String类有一个format方法可以格式化输出字符串,我们也可以使用它来对小数进行格式化。下面的代码演示了如何使用String.format方法来截断小数:

double num = 3.14159;
String result = String.format("%.2f", num);//保留两位小数
System.out.println(result);//输出结果为:3.14
5. 使用正则表达式截取小数

对于小数截断,我们还可以使用正则表达式截取需要的小数位数。下面的代码演示了如何使用正则表达式来截断小数:

double num = 3.14159;
Pattern pattern = Pattern.compile("^\\d+\\.\\d{0,2}");
Matcher matcher = pattern.matcher(String.valueOf(num));
matcher.find();
System.out.println(matcher.group());//输出结果为:3.14

以上就是Java中截断小数的几种方法,通过灵活应用可以实现各种自己想要的效果。