无法格式化BigDecimal:方法抛出';java.lang.NumberFormatException';例外
我有以下代码:无法格式化BigDecimal:方法抛出';java.lang.NumberFormatException';例外,java,bigdecimal,decimalformat,Java,Bigdecimal,Decimalformat,我有以下代码: DecimalFormat df = new DecimalFormat("####.00"); BigDecimal amount = new BigDecimal("0"); new BigDecimal(df.format(amount)); 这是我的输出: ",00" // Method threw 'java.lang.NumberFormatException' exception. 但我需要的是: 0
DecimalFormat df = new DecimalFormat("####.00");
BigDecimal amount = new BigDecimal("0");
new BigDecimal(df.format(amount));
这是我的输出:
",00" // Method threw 'java.lang.NumberFormatException' exception.
但我需要的是:
0.00 (or something like that)
对不起,我没有任何进一步的信息。您的
区域设置
可能正在为bigdecime
生成一个无效的数字。试用
DecimalFormat df = new DecimalFormat("####0.00", new DecimalFormatSymbols(Locale.US));
当然,您可以简单地使用
df.format(amount)
来显示输出值df.format(amount)
返回字符串。为什么要将其传递回BigDecimal
。只需从df.format(amount)
打印返回值,也可以将格式更改为“####0.00”
,否则它将打印.00
,而不是0.00
,实际上您问题中的上述代码片段是有效的。所以如果我在做一个DecimalFormat df=new DecimalFormat(“####.00”);BigDecimal金额=新的BigDecimal(“0”);System.out.println(新的BigDecimal(df.format(amount))代码>它不打印0.00。所以,如果您可以共享错误stackTrace,它将有所帮助。正如@Goion所提到的,只需在返回字符串时打印df.format(amount)
。但是如果你要打印df.format(amount)
,那么将格式从#####.00
(它将打印.00)更改为####0.00
(它将打印0.00)我全心全意地爱你。谢谢