NumberFormat和DecimalFormat是Java中用于格式化数字的类。
NumberFormat是一个抽象类,它提供了格式化和解析数字的方法。它的常用子类有DecimalFormat和ChoiceFormat。
DecimalFormat是NumberFormat的一个具体子类,它可以用于格式化数字为特定的模式。它可以指定小数位数、千位分隔符、货币符号等。
下面是一个使用DecimalFormat格式化数字的例子:
double number = 12345.6789;
DecimalFormat df = new DecimalFormat("#,##0.00");
String formattedNumber = df.format(number);
System.out.println(formattedNumber);
输出结果为:12,345.68
在上面的例子中,我们使用了一个模式字符串#,##0.00
来指定格式化的规则。其中#,##0
表示千位分隔符,.00
表示保留两位小数。
除了格式化数字,DecimalFormat还可以解析字符串为数字。例如:
String str = "1,234.56";
double parsedNumber = df.parse(str).doubleValue();
System.out.println(parsedNumber);
输出结果为:1234.56
上面的例子中,我们使用df.parse(str)
方法将字符串解析为数字。
除了DecimalFormat,NumberFormat还提供了其他方法用于格式化和解析数字,比如getCurrencyInstance()用于格式化为货币形式,getPercentInstance()用于格式化为百分数形式等。
总之,NumberFormat和DecimalFormat是Java中用于格式化数字的类,可以将数字格式化为指定的模式,也可以将字符串解析为数字。