Java问题将String转换为double

时间:2015-06-15 09:40:35

标签: java double

我试图将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();
}

1 个答案:

答案 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)));   

仅在打印时显示尾随零,因此您只需格式化数字

即可