Java小数点后的0去掉

在Java中,小数点后的0是没有实际意义的,并且有时候会影响到程序的可读性。因此,我们经常会需要将小数点后的0去掉。本文将介绍几种常用的方法来实现这一目标。

方法一:使用DecimalFormat类

DecimalFormat类是Java提供的一个格式化数字的类,可以用来格式化数字的样式。我们可以使用它来去掉小数点后的0。下面是一个示例代码:

import java.text.DecimalFormat;

public class Main {
    public static void main(String[] args) {
        double number = 3.1400;
        
        DecimalFormat df = new DecimalFormat("#.##");
        String result = df.format(number);
        
        System.out.println(result);
    }
}

在上面的代码中,我们创建了一个DecimalFormat对象,并指定了格式化的样式为"#.##"。这个样式表示保留两位小数,并且去掉末尾的0。然后,我们使用format()方法将输入的数字格式化成字符串。最后,我们打印出结果。

运行上面的代码,输出结果为"3.14"。

方法二:使用String的replaceAll()方法

另一种去掉小数点后的0的方法是使用String的replaceAll()方法。我们可以将小数点和末尾的0替换为空字符串。下面是一个示例代码:

public class Main {
    public static void main(String[] args) {
        double number = 3.1400;
        
        String result = String.valueOf(number).replaceAll("\\.0*$", "");
        
        System.out.println(result);
    }
}

在上面的代码中,我们先使用String.valueOf()方法将输入的数字转换成字符串。然后,我们使用replaceAll()方法将小数点和末尾的0替换为空字符串。这里使用了正则表达式".0*$",表示匹配小数点和末尾的0。最后,我们打印出结果。

运行上面的代码,输出结果为"3.14"。

方法三:使用BigDecimal类

如果我们需要对精度要求更高,可以使用BigDecimal类来处理小数点后的0。BigDecimal类提供了丰富的数字运算方法,可以准确地处理大数字和小数点后的精度。下面是一个示例代码:

import java.math.BigDecimal;

public class Main {
    public static void main(String[] args) {
        BigDecimal number = new BigDecimal("3.1400");
        
        number = number.stripTrailingZeros();
        
        System.out.println(number);
    }
}

在上面的代码中,我们创建了一个BigDecimal对象,并使用字符串"3.1400"来初始化它。然后,我们使用stripTrailingZeros()方法去掉末尾的0。最后,我们打印出结果。

运行上面的代码,输出结果为"3.14"。

总结

本文介绍了三种常用的方法来去掉Java中小数点后的0。使用DecimalFormat类可以灵活地格式化数字,使用String的replaceAll()方法可以快速地替换小数点和末尾的0,而使用BigDecimal类可以处理更高精度的数字。根据实际需求,我们可以选择合适的方法来处理小数点后的0。

以下是本文中介绍的三种方法的甘特图:

gantt
    dateFormat  YYYY-MM-DD
    title       Java小数点后的0去掉

    section 方法一
    创建DecimalFormat对象             :done, 2021-06-01, 1d
    格式化数字并去掉小数点后的0       :done, 2021-06-02, 1d
    打印结果                         :done, 2021-06-03, 1d

    section 方法二
    将数字转换成字符串               :done, 2021-06-04, 1d
    使用replaceAll()方法去掉小数点后的0 :done, 2021-06-05, 1d
    打印结果                         :done, 2021-06-06, 1d

    section 方法三
    创建BigDecimal对象              :done, 2021-06-07, 1d
    去掉末尾的0                      :done, 2021-06-08, 1d