在java中使用NumberFormat类实现数字格式化
NumberFormat可以将一个数值格式化为符合某个国家地区习惯的数值字符串,也可以将符合某个国家地区习惯的数值字符串解析为对应的数值
NumberFormat 类的方法:
format 方法:将一个数值格式化为符合某个国家地区习惯的数值字符串
parse方法:将符合某个国家地区习惯的数值字符串解析为对应的数值。
实例化NumberFormat类:
可以使用locale对象作为参数,也可以不使用
getNumberInstance(Localelocale):以参数locale对象所标识的本地信息来获得具有多种用途的NumberFormat实例对象
getIntegerInstance(Localelocale):以参数locale对象所标识的本地信息来获得处理整数的NumberFormat实例对象
getCurrencyInstance(Localelocale):以参数locale对象所标识的本地信息来获得处理货币的NumberFormat实例对象
getPercentInstance(Localelocale):以参数locale对象所标识的本地信息来获得处理百分比数值的NumberFormat实例对象
例如:
将整数198,输出为货币形式:$198,并将$198反向解析成整数198
int i = 198;
String ii = NumberFormat.getCurrencyInstance(new Locale("en","US")).format(i);
System.out.println("解析为货币符是:" +ii);
java.lang.Number j = NumberFormat.getCurrencyInstance(new Locale("en","US")).parse(ii);
System.out.println("反解析出的结果是:" + j);
使用标签实现数字格式化:
<fmt:formatNumbervalue="" type=" " pattern=""/>
value:要格式化的数字
type:格式化的格式
pattern:自定义的数字化格式
如:
//将整数值198按照美元格式输出
<fmt:formatNumber value="198" type="currency"pattern="{1}quot;></fmt:formatNumber><br>
//将$198反解析成整数值
<fmt:parseNumber value="$198"type="currency" pattern="{1}quot;></fmt:parseNumber>
数字格式化输出的几种格式:
(0) 一个数位;(#)一个数位,前导零和追尾零不显示;(.)小数点分割位置;(,)组分隔符的位置;(-)负数前缀;(%)用100乘,并显示百分号
如:
<fmt:formatNumbervalue="12" type="currency" pattern="$.0#"/>
<fmt:formatNumbervalue="1234567890" type="currency"/>
<fmt:formatNumbervalue="123456.7891" pattern="#,#00.0#"/>
<fmt:formatNumbervalue="123456.7" pattern="#,#00.0#"/>
<fmt:formatNumbervalue="123456.7" pattern="#,#00.00#"/>