项目中 用到将String转换为 货币的显示样式,查了相关资料,在此做个小总结:
Java 提供了NumberFormat这个类来帮助大家处理:
获得本地默认格式
NumberFormat.getNumberInstance() // 数字
NumberFormat.getCurrencyInstance() // 货币
NumberFormat.getOpercentInstance() //百分比
------------------------------------------------------------------------------------------------
使用本地默认格式输出数字
NumberFormat numberFormat = NumberFormat.getNumberInstanc();
numberFormat.setMaximumFractionDigits(4); // 指定小数位数 整数位不够的补零,小数截去部分四舍五入。
numberFormat.setMinimumIntegerDigits(6); //指定整数位数
String numberString = numberFormat.format(d);
System.out.println("本地默认格式输出数:" + numberString);
//使用本地默认格式输出货币值
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
System.out.println("本地默认格式输出货币值:" + currencyFormat.format(d));
//使用本地默认格式输出百分数
NumberFormat percentFormat = NumberFormat.getPercentInstance();
System.out.println("本地默认格式输出百分数:" + percentFormat.format(d));
当然,可以指定不同国家地区,Local.XXXX, 也是有区别的
//使用德国的格式化输出数
NumberFormat numberFormatG = NumberFormat.getNumberInstance(Local.GERMANY);
System.out.println("德国数字输出形式:" + numberFormatG.format(d));
------------------------------------------------------------------------------------------------
也可以用NumberFormat的一个子类DecimalFormat来指定输出格式
DecimalFormat decimalFormat = new DecimalFormat(",###.###"); // 输入"999888.7777" 注意逗号
String s = decimalFormat.format(d); // 999,888.78
------------------------------------------------------------------------------------------------
也可以对格式化的数字进行解析。
NumberFormat numberFormat1 = NumberFormat.getNumberInstance();
Number numb1 = null;
numb1 = numberFormat1.parse("33,333.33");// 结果:33333.33
参考:http://www.blogjava.net/majianan/archive/2006/07/18/58873.html