NumberFormat类和DecimalFormat类是Java中用于格式化数字的两个类。
NumberFormat类是一个抽象类,用于格式化和解析数字。可以通过调用静态方法getInstance()来获取一个默认的NumberFormat对象,也可以通过调用静态方法getCurrencyInstance()、getPercentInstance()等获取特定类型的NumberFormat对象。然后可以调用format()方法将数字格式化为字符串,调用parse()方法将字符串解析为数字。
DecimalFormat类是NumberFormat的一个具体子类,用于格式化和解析十进制数字。可以通过创建一个DecimalFormat对象,设置格式化的模式,然后调用format()方法将数字格式化为字符串,调用parse()方法将字符串解析为数字。
以下是一个示例代码,演示了如何使用NumberFormat类和DecimalFormat类来格式化数字:
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Main {
public static void main(String[] args) {
// 使用NumberFormat类格式化数字
NumberFormat numberFormat = NumberFormat.getInstance();
String formattedNumber = numberFormat.format(12345.67);
System.out.println("Formatted number: " + formattedNumber);
// 使用DecimalFormat类格式化数字
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
String formattedDecimal = decimalFormat.format(12345.67);
System.out.println("Formatted decimal: " + formattedDecimal);
// 使用DecimalFormat类解析字符串
try {
Number parsedNumber = decimalFormat.parse("12,345.67");
System.out.println("Parsed number: " + parsedNumber);
} catch (Exception e) {
System.out.println("Error parsing number");
}
}
}
在上面的示例中,我们首先使用NumberFormat类和DecimalFormat类分别格式化了一个数字和一个十进制数,并将结果打印出来。然后使用DecimalFormat类解析了一个格式化的字符串,并将结果打印出来。