Java DecimalFormat使用详解

Java 中的 DecimalFormat 类提供了数字格式化的功能,可以将数字格式化成字符串。该类提供了一些格式化选项,例如保留小数点后几位、千位分隔符等。下面是一个简单的示例:

import java.text.DecimalFormat;

public class DecimalFormatExample {
    public static void main(String[] args) {
        double num = 1234.5678;
        DecimalFormat df = new DecimalFormat("#,##0.00");
        String result = df.format(num);
        System.out.println(result);
    }
}

运行结果为:

1,234.57

上述示例中,首先定义了一个 double 类型的数字 num,然后使用 DecimalFormat 类创建了一个格式化对象 df,通过调用 df 的 format() 方法对 num 进行格式化,最终得到一个字符串类型的结果 result。在格式化的过程中,使用了一个格式化选项 “#,##0.00″,其中 “#” 表示可选数字位,”0″ 表示必选数字位,”,” 表示千位分隔符,”.” 表示小数点。因此,最终的结果是保留两位小数,千位分隔符分隔整数位。

DecimalFormat 类还提供了一些其他的格式化选项,例如:

"#":表示可选数字位。
"0":表示必选数字位。
".":表示小数点。
",":表示千位分隔符。
"E":表示科学计数法。
"%":表示百分数。
"\u2030":表示千分数。
";":表示分隔符,用于支持多个格式化选项。

DecimalFormat 类提供了多种格式化方法,用于将数字格式化为特定的字符串。下面是一些常用的格式化方法:

format(double/long number):将给定的数字格式化为字符串。
parse(String text):将给定的字符串解析为数字。
setMaximumFractionDigits(int newValue):设置数字的最大小数位数。
setMinimumFractionDigits(int newValue):设置数字的最小小数位数。
setGroupingUsed(boolean newValue):设置是否使用分组符号。
setNegativePrefix(String newValue):设置负数的前缀。
setNegativeSuffix(String newValue):设置负数的后缀。
setPositivePrefix(String newValue):设置正数的前缀。
setPositiveSuffix(String newValue):设置正数的后缀。

下面是一个示例,演示如何使用 DecimalFormat 类的格式化方法:

import java.text.DecimalFormat;

public class DecimalFormatExample {
    public static void main(String[] args) {
        double number = 123456.789;

        // 创建 DecimalFormat 对象
        DecimalFormat df = new DecimalFormat("###,###.###");

        // 格式化数字为字符串
        String formattedNumber = df.format(number);
        System.out.println(formattedNumber); // 输出:123,456.789

        // 解析字符串为数字
        try {
            double parsedNumber = df.parse(formattedNumber).doubleValue();
            System.out.println(parsedNumber); // 输出:123456.789
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的示例中,我们创建了一个 DecimalFormat 对象,使用 “###,###.###” 格式化字符串的格式,并使用 format() 方法将给定的数字格式化为字符串。然后,我们使用 parse() 方法将格式化后的字符串解析为数字。

具体使用方法可以参考 DecimalFormat 类的官方文档。