对于不同的国家,货币和数字表示方式不同,这就需要数据格式转化。
我们分为的三个步骤来解析:
1.得到Locale对象,即需要转化为哪个国家的
2.使用工厂模式获取格式化器对象
3.使用格式化器对象转化
测试代码如下图:
@Test
public void test2() throws ParseException
{
//1.得到Locale对象
Locale locale=new Locale(Locale.FRENCH.getLanguage(),Locale.FRANCE.getCountry());
//2.使用工厂方法获取格式化器对象
NumberFormat numberFormat=NumberFormat.getNumberInstance(locale);
NumberFormat currencyFormat=NumberFormat.getCurrencyInstance(locale);
NumberFormat fmt=NumberFormat.getPercentInstance();
//3.使用格式化器来进行解析
String s=numberFormat.format(1232.78);
//将货币转化为法郎
String money=currencyFormat.format(1222334);
System.out.println(s);
System.out.println(money);
//将字符串解析为数字,可能会抛出异常
Number num=currencyFormat.parse(money);
System.out.println(num.doubleValue());
//百分数转化
String percent=fmt.format(0.4);
System.out.println(percent);
}
对于NumberFormat的各个方法:
@Test
public void test2() throws ParseException
{
//1.得到Locale对象
Locale locale=new Locale(Locale.FRENCH.getLanguage(),Locale.FRANCE.getCountry());
//2.使用工厂方法获取格式化器对象
NumberFormat numberFormat=NumberFormat.getNumberInstance(locale);
NumberFormat currencyFormat=NumberFormat.getCurrencyInstance(locale);
NumberFormat fmt=NumberFormat.getPercentInstance();
//3.使用格式化器来进行解析
String s=numberFormat.format(1232.78);
//将货币转化为法郎
String money=currencyFormat.format(1222334);
System.out.println(s);
System.out.println(money);
//将字符串解析为数字,可能会抛出异常
Number num=currencyFormat.parse(money);
System.out.println(num.doubleValue());
//百分数转化
String percent=fmt.format(0.4);
System.out.println(percent);
//为法国人设置澳元格式
currencyFormat.setCurrency(Currency.getInstance(Locale.CANADA));
//打印出2 344 233 242,00 CAD
String doller=currencyFormat.format(2344233242L);
System.out.println(doller);
}