温馨提示×

java中的NumberFormat和DecimalFormat怎么使用

小亿
81
2023-12-19 23:20:25
栏目: 编程语言

在Java中,NumberFormat和DecimalFormat是两个用于格式化数字的类。

NumberFormat是一个抽象基类,可以用于任何数字类型的格式化。要使用NumberFormat,可以按照以下步骤进行:

  1. 使用NumberFormat.getInstance()方法获取NumberFormat的实例。
  2. 使用format()方法将数字格式化为字符串。
  3. 使用parse()方法将字符串解析为数字。

下面是一个使用NumberFormat的示例:

import java.text.NumberFormat;

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

        // 获取NumberFormat实例
        NumberFormat numberFormat = NumberFormat.getInstance();

        // 格式化数字为字符串
        String formattedNumber = numberFormat.format(number);
        System.out.println("Formatted number: " + formattedNumber);

        // 解析字符串为数字
        try {
            Number parsedNumber = numberFormat.parse(formattedNumber);
            System.out.println("Parsed number: " + parsedNumber);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

输出结果为:

Formatted number: 12,345.679
Parsed number: 12345.679

DecimalFormat是NumberFormat的子类,它专门用于格式化和解析十进制数字。与NumberFormat相比,DecimalFormat提供了更多的控制选项,例如指定小数点位置、千分位分隔符等。要使用DecimalFormat,可以按照以下步骤进行:

  1. 创建一个DecimalFormat对象,并指定格式化模式。
  2. 使用format()方法将数字格式化为字符串。
  3. 使用parse()方法将字符串解析为数字。

下面是一个使用DecimalFormat的示例:

import java.text.DecimalFormat;

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

        // 创建DecimalFormat对象并指定格式化模式
        DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");

        // 格式化数字为字符串
        String formattedNumber = decimalFormat.format(number);
        System.out.println("Formatted number: " + formattedNumber);

        // 解析字符串为数字
        try {
            Number parsedNumber = decimalFormat.parse(formattedNumber);
            System.out.println("Parsed number: " + parsedNumber);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

输出结果为:

Formatted number: 12,345.68
Parsed number: 12345.68

在上面的示例中,使用#,##0.00作为格式化模式,表示数字使用千分位分隔符,并保留两位小数。你可以根据自己的需求调整格式化模式。

0