繁体   English   中英

Java将字符串转换为双精度的问题

[英]Java issue converting String to 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();
}

虽然我认为保持尾随零不是必要的,但我认为这是您要的:

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

尾随零仅在打印时可见,因此您只需要格式化数字

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM