NumberFormat类是Java中用于格式化数字的类。它提供了一些静态方法和实例方法来格式化和解析数字。
-
使用静态方法获取NumberFormat实例:
- getInstance():返回当前默认语言环境的通用数值格式器。
- getCurrencyInstance():返回当前默认语言环境的通用货币格式器。
- getPercentInstance():返回当前默认语言环境的通用百分比格式器。
-
实例方法:
- setMaximumIntegerDigits(int newValue):设置最大整数位数。
- setMinimumIntegerDigits(int newValue):设置最小整数位数。
- setMaximumFractionDigits(int newValue):设置最大小数位数。
- setMinimumFractionDigits(int newValue):设置最小小数位数。
- setGroupingUsed(boolean newValue):设置是否启用分组(千位分隔符)。
- format(double/long/Number number):将数字格式化为字符串。
- parse(String source):将字符串解析为数字。
示例代码:
import java.text.NumberFormat; public class NumberFormatExample { public static void main(String[] args) { double number = 12345.6789; // 获取通用数值格式器 NumberFormat numberFormat = NumberFormat.getInstance(); String formattedNumber = numberFormat.format(number); System.out.println("通用格式化:" + formattedNumber); // 获取货币格式器 NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(); String formattedCurrency = currencyFormat.format(number); System.out.println("货币格式化:" + formattedCurrency); // 获取百分比格式器 NumberFormat percentFormat = NumberFormat.getPercentInstance(); String formattedPercent = percentFormat.format(number); System.out.println("百分比格式化:" + formattedPercent); // 解析字符串为数字 String source = "12,345.6789"; try { double parsedNumber = numberFormat.parse(source).doubleValue(); System.out.println("解析结果:" + parsedNumber); } catch (Exception e) { e.printStackTrace(); } } }
输出结果:
通用格式化:12,345.679 货币格式化:¥12,345.68 百分比格式化:1,234,568% 解析结果:12345.679
通过NumberFormat类,可以方便地对数字进行格式化和解析,以满足不同的显示需求。