阅读量:0
在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,可以按照以下步骤进行:
- 创建一个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
作为格式化模式,表示数字使用千分位分隔符,并保留两位小数。你可以根据自己的需求调整格式化模式。