代码:
DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(locale);
df.applyPattern("#.##0,00");
它会抛出IllegalArgumentException并显示格式错误的消息“#。## 0,00”
这有什么问题?
编辑:我想使用。作为千位分隔符,作为小数。我知道这是屁股倒退,但有一个案例,那就是他们想要的格式。
答案 0 :(得分:4)
您需要使用“#,## 0。##”模式来指示您想要小数点分隔符和千位分隔符的位置。您使用此Locale
时使用的 DecimalFormat
将确定小数点分隔符是.
还是,
- 模式不应该是改变。
如果您没有获得正确的分隔符,则需要使用其他Locale
。
答案 1 :(得分:1)
您不必使用不同的 DecimalFormatSymbols
。
您可以使用 DecimalFormatSymbols
类来更改出现在由 format 方法生成的格式化数字中的符号。这些符号包括小数点分隔符、分组分隔符、减号和百分号等。
下一个示例通过对数字应用奇怪的格式来演示 setDecimalSeparator
类。异常格式是调用 setGroupingSeparator
、setGroupingSize
和 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
运行时,此示例以奇怪的格式打印数字:
=HYPERLINK("https://worldinternal.com:8235/clinetpage.html?testid=" ®EXEXTRACT(A1,"FA-TI\d+"),REGEXEXTRACT(A1,"FA-TI\d+"))
取自:https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html