DecimalFormat.applyPattern( "#.##0,00" ) 抛出异常



代码:

DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(locale);
df.applyPattern("#.##0,00");

,它带有畸形模式的消息"#。## 0,00"

抛出了一个违法的exception

这有什么问题?

编辑:我想使用。作为一个成千上万的分隔符,作为十进制。我知道那是屁股,但有一个他们想要的格式的情况。

您需要使用模式"#,## 0。##"来指示要在哪里进行小数分离器和千分离器。 Locale 您在使用此DecimalFormat时使用的是,将确定小数分离器是.还是,-不应更改模式。

如果您没有得到正确的分离器,则需要使用其他Locale

您不必使用其他Locale

您可以使用DecimalFormatSymbols类来更改格式方法产生的格式数字中出现的符号。这些符号包括十进制分离器,分组分隔符,负符号和百分比符号等。

下一个示例通过将奇怪的格式应用于一个数字来演示DecimalFormatSymbols类。不寻常的格式是调用setDecimalSeparatorsetGroupingSeparatorsetGroupingSize方法的结果。

DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(currentLocale);
unusualSymbols.setDecimalSeparator('|');
unusualSymbols.setGroupingSeparator('^');
String strange = "#,##0.###";
DecimalFormat weirdFormatter = new DecimalFormat(strange, unusualSymbols);
weirdFormatter.setGroupingSize(4);
String bizarre = weirdFormatter.format(12345.678);
System.out.println(bizarre);

运行时,此示例以奇异的格式打印数字:

1^2345|678

从:https://docs.oracle.com/javase/tutorial/i18n/format/decimalformat.html

相关内容

  • 没有找到相关文章

最新更新