使用Java的NumberFormat可以将数字格式化为货币,也可以将货币格式转化为纯数字,但是在执行代码后报错:
Exception in thread "main" java.text.ParseException: Unparseable number: "¥123,456.12"
at java.text.NumberFormat.parse(NumberFormat.java:385)
at com.itzhimei.base.bit.TestNumberFormat.main(TestNumberFormat.java:69)
代码:
public static void main(String[] args) throws ParseException {
NumberFormat nf = NumberFormat.getInstance();
Number p2 = nf.parse("¥123,456.12");
System.out.println(p2);
}
原因在于NumberFormat有多种格式化的对象,也就是多种格式化模式,处理货币,要用货币模式,也就是我们get这个:
NumberFormat nf = NumberFormat.getCurrencyInstance();
那么代码修改一下,如下:
public static void main(String[] args) throws ParseException {
Number p3 = NumberFormat.getCurrencyInstance().parse("¥123,456.12");
System.out.println(p3);
}
/* 输出
123456.12
*/