在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.679Parsed number: 12345.679DecimalFormat是NumberFormat的子类,它专门用于格式化和解析十进制数字。与NumberFormat相比,DecimalFormat提供了更多的控制选项,例如指定小数点位置、千分位分隔符等。要使用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.68Parsed number: 12345.68在上面的示例中,使用#,##0.00作为格式化模式,表示数字使用千分位分隔符,并保留两位小数。你可以根据自己的需求调整格式化模式。

