Ste*_*lla 1 java formatting supercsv
我想将十进制值格式化为货币值:1234.56d应变为"1.234,56"(此格式在某些欧洲国家/地区使用).我使用以下模式格式化十进制值:
final DecimalFormat df = new DecimalFormat("###.###.###,00");
final String formatted = df.format(1234.56d);
System.out.println(formatted);
Run Code Online (Sandbox Code Playgroud)
事实上我正在使用SuperCSV的类FmtNumber,但这没关系,因为模式语法是相同的:new FmtNumber("###.###.###,00");
我得到的是IllegalArgumentException,消息"模式中有多个小数分隔符".
我知道只能有一个小数分隔符.但就我而言,它应该是","的标志.并且","在我的模式中只出现一次.
我搜索了Web和StackOverflow这个异常消息,但我没有找到有用的答案.
我的错误是什么?
从javadoc的在格式字符串.是永远的小数点分隔符和,为总分组分隔符.
它在格式化中的实际表示String由formatter实例的语言环境给出.
例如
final DecimalFormat decimalFormat = new DecimalFormat("###,###,##0.00", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
Run Code Online (Sandbox Code Playgroud)
如果你看的javadoc为FmtNumber是明确表示"使用的DecimalFormat类和默认语言环境" -所以你需要有正确的默认Locale这个工作.
| 归档时间: |
|
| 查看次数: |
5936 次 |
| 最近记录: |