DecimalFormat.applyPattern("#.##0,00") 抛出异常
DecimalFormat.applyPattern("#.##0,00") throwing an exception
对于代码:
DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(locale);
df.applyPattern("#.##0,00");
它会抛出一个 IllegalArgumentException 异常模式消息“#.##0,00”
这有什么问题吗?
编辑: 我想使用 .作为千位分隔符和 , 作为小数点。我知道这是倒退的,但有一种情况是他们想要的格式。
您需要使用模式“#,##0.##”来指示小数分隔符和千位分隔符的位置。使用此 DecimalFormat
时使用的 Locale
将确定小数点分隔符是 .
还是 ,
-- 模式不应更改。
如果您没有得到正确的分隔符,您将需要使用不同的 Locale
。
您不必使用不同的 Locale
。
您可以使用 DecimalFormatSymbols
class 来更改格式化方法生成的格式化数字中出现的符号。这些符号包括小数分隔符、分组分隔符、减号和百分号等。
下一个示例通过对数字应用奇怪的格式来演示 DecimalFormatSymbols
class。异常格式是调用 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
取自:https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html
对于代码:
DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(locale);
df.applyPattern("#.##0,00");
它会抛出一个 IllegalArgumentException 异常模式消息“#.##0,00”
这有什么问题吗?
编辑: 我想使用 .作为千位分隔符和 , 作为小数点。我知道这是倒退的,但有一种情况是他们想要的格式。
您需要使用模式“#,##0.##”来指示小数分隔符和千位分隔符的位置。使用此 DecimalFormat
时使用的 Locale
将确定小数点分隔符是 .
还是 ,
-- 模式不应更改。
如果您没有得到正确的分隔符,您将需要使用不同的 Locale
。
您不必使用不同的 Locale
。
您可以使用 DecimalFormatSymbols
class 来更改格式化方法生成的格式化数字中出现的符号。这些符号包括小数分隔符、分组分隔符、减号和百分号等。
下一个示例通过对数字应用奇怪的格式来演示 DecimalFormatSymbols
class。异常格式是调用 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
取自:https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html