String_format异常
背景:
输出的钱的格式需要是千分位分隔,所以采用String
的format
产生异常的代码如下:
public static void main(String[] args) {
System.out.println(String.format("%1$,d","99999999"));
}
异常信息如下:
Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747)
at java.util.Formatter.format(Formatter.java:2526)
at java.util.Formatter.format(Formatter.java:2455)
at java.lang.String.format(String.java:2940)
解决办法:
上面代码中我传入的是字符串"99999999"
,实际应该传入数值类型就ok。
正确姿势:
public static void main(String[] args) {
System.out.println(String.format("%1$,d","99999999"));
}
正确结果:
99,999,999
还没有评论,来说两句吧...