簡體   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