2014-02-24 44 views
0

我想將傳入的Double轉換爲字符串,其中有一個分隔符。如何將十進制數字轉換爲空間

例如159727,5應該是159 727,5

這裏是我的代碼:

public static String formatToHungraianNumber(Double toFormat) { 
    logger.info("formatToHungraianNumber begin :" + toFormat); 
    String formatted = toFormat.toString(); 
    try { 
     DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
     symbols.setGroupingSeparator(' '); 
     DecimalFormat format = new DecimalFormat("# ###,00", symbols); 
     formatted = String.format("%14s", format.format(toFormat)); 
    } catch (Exception e) { 
     logger.info("Runtime Exception", e); 
     return formatted; 
    } 
    logger.info("Returned:" + formatted); 
    return formatted; 
} 

而是返回159 727,5它返回15 97 28 我已經看到了這一點question,但我不希望我的結果被截斷。我的代碼有什麼問題?

回答

1
DecimalFormat format = new DecimalFormat("# ###,00", symbols); 

應該是:

DecimalFormat format = new DecimalFormat("#,###.00", symbols); 

DecimalFormat語法不會改變。只有輸出更改。

+0

我還是得到了159727,50 而不是159 727,50 –

+0

@GáborCsikós奇怪,這個答案適合我。 – SamYonnou

+0

對不起,這是我的錯誤,它真的有效。 謝謝! –

相關問題