在Java中,NumberFormat和DecimalFormat是两个用于格式化数字的类。
NumberFormat是一个抽象基类,可以用于任何数字类型的格式化。要使用NumberFormat,可以按照以下步骤进行:
NumberFormat.getInstance()
方法获取NumberFormat的实例。format()
方法将数字格式化为字符串。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,可以按照以下步骤进行:
format()
方法将数字格式化为字符串。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
作为格式化模式,表示数字使用千分位分隔符,并保留两位小数。你可以根据自己的需求调整格式化模式。