Osk*_*lin 6 java number-formatting decimalformat
有人可以向我解释为什么下面的代码给出了这个输出?
1.2
null
Run Code Online (Sandbox Code Playgroud)
运行以下代码:
String positive = "1.2+";
String negative = "1.2-";
DecimalFormat format = new DecimalFormat("0.0");
format.setPositiveSuffix("+");
format.setNegativeSuffix("-");
format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.US));
System.out.println(format.parse(positive, new ParsePosition(0)));
System.out.println(format.parse(negative, new ParsePosition(0)));
Run Code Online (Sandbox Code Playgroud)
这虽然有效,但我不喜欢重复模式:
String positive = "1.2+";
String negative = "1.2-";
DecimalFormat format = new DecimalFormat("0.0+;0.0-");
format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.US));
System.out.println(format.parse(positive, new ParsePosition(0)));
System.out.println(format.parse(negative, new ParsePosition(0)));
Run Code Online (Sandbox Code Playgroud)
后缀不是用于解析吗?
正如 javadoc 中所指定的:
负子模式是可选的;如果不存在,则正子模式以本地化减号(在大多数语言环境中为“-”)为前缀
在您的示例中,解析器正在等待“-1.2-”,因此您必须添加以下行:
format.setNegativePrefix("");
Run Code Online (Sandbox Code Playgroud)
祝你今天过得愉快 !
| 归档时间: |
|
| 查看次数: |
2334 次 |
| 最近记录: |