DecimalFormat 是 Java 中用于格式化数字的类,它可以帮助将数字按照指定的格式进行格式化输出。主要用途是将数字转换成特定的字符串表示形式,包括指定小数点后的位数、千位分隔符等。
基本用法
创建 DecimalFormat 对象
import java.text.DecimalFormat;
DecimalFormat df = new DecimalFormat();
你也可以通过指定格式模式来创建 DecimalFormat 对象:
DecimalFormat df = new DecimalFormat("0.00");
这里的 "0.00" 是一个格式模式,表示保留两位小数。
格式化数字
使用 DecimalFormat 的 format() 方法来格式化数字:
double number = 12345.6789;
String formattedNumber = df.format(number);
System.out.println(formattedNumber); // 输出: 12345.68
这里的 format() 方法会按照指定的格式模式将 number 格式化成字符串,并进行四舍五入。
格式模式示例
"0":表示数字,如果没有则显示为 0。
"0.00":表示数字,保留两位小数。
"#,###.00":表示数字,千位分隔符,保留两位小数。
"###,###.##":另一个示例,千位分隔符,保留至少一位小数,最多两位小数。
控制符号和特殊字符
0:表示必须显示的数字位,如果位数不足则用 0 填充。
#:表示可选的数字位,如果没有对应的位数则不显示。
,:千位分隔符。
.:小数点分隔符。
-:表示负数符号。
E:科学计数法。
更复杂的格式化
如果需要更复杂的格式化,比如处理货币符号、百分比等,可以通过 DecimalFormat 的其他方法来实现。例如:
DecimalFormat currencyFormat = new DecimalFormat("$#,##0.00");
String formattedCurrency = currencyFormat.format(12345.6789);
System.out.println(formattedCurrency); // 输出: $12,345.68
DecimalFormat percentFormat = new DecimalFormat("#0.00%");
String formattedPercentage = percentFormat.format(0.4567);
System.out.println(formattedPercentage); // 输出: 45.67%
总结
DecimalFormat 是一个强大的工具,用于将数字格式化为特定的字符串表示形式,具有广泛的灵活性和功能,可以满足各种数字格式化的需求。通过掌握不同的格式模式和方法,可以轻松地对数字进行格式化输出。