我试图将String转换为double。
源字符串的格式为" 88.6"我期望的双倍应该是" 88.60"。
我尝试使用Double.parseDouble,Double构造函数,Double.valueOf,DecimalFormat和NumberFormat硬编码Locale.US或Locale.ENGLISH进行转换,但我仍然得到" 88,600000"。
我应该如何转换它?
由于
DecimalFormat df = new DecimalFormat("#.##", new DecimalFormatSymbols(Locale.US));
try {
dValue = df.parse(szValue).doubleValue();
} catch(ParseException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
虽然我不认为保持尾随零是必要的,但我认为这就是你所要求的:
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
java.text.DecimalFormat df = new java.text.DecimalFormat();
df.setDecimalFormatSymbols(dfs);
df.applyPattern( "###0.00" );
String s = "9.90" ;
System.out.println("non formated d=" + Double.valueOf(s) + " formated d=" +df.format(Double.valueOf(s)));
仅在打印时显示尾随零,因此您只需格式化数字
即可