2016-04-27 41 views
1

我有一個代碼。如何在DecimalFormat中打印雙值

Double value = 6.589715E7; 
DecimalFormatSymbols symbol = new DecimalFormatSymbols(Locale.GERMANY); 
symbol.setGroupingSeparator(','); 
final DecimalFormat doris = new DecimalFormat("#,###000",symbol); 
System.out.println(changedValue); 

它顯示現在這個禮儀的價值。

65,897150

是否有任何可以顯示的方式。

65,9(也四捨五入至小數點後一位)

+0

爲什麼設置德語語言環境使用逗號作爲小數點,然後將分組分隔符設置爲逗號?結合奇怪的模式,只有數百萬組的分隔符,但不是數以千計的,這讓人非常困惑。如果你想要湊成數百萬,你可能應該分一百萬。 – Thilo

回答

0

這個例子圍捕2,但你明白了吧,試試這個 inputValue將= Math.Round(inputValue將,2);

+0

這對於65,897,150來說沒有太大的作用,因爲這個數字沒有小數部分。 – Thilo

0

這裏我把答案以字符串格式。你也可以轉換成雙格式。

Double value = 6.589715E7; 
    DecimalFormatSymbols symbol = new DecimalFormatSymbols(Locale.GERMANY); 
    symbol.setGroupingSeparator(','); 
    final DecimalFormat doris = new DecimalFormat("##,###000",symbol); 
    String str = String.valueOf(doris.format(value)); 
    String formated=str.replace(".", ",").substring(0,str.indexOf(",")+2); 
    Log.e("Log","d result="+formated); 
+0

爲什麼你在另一個String上調用'String.valueOf'? – Thilo

+0

根據要求,此輪轉爲「65,8」而非「65,9」。 – Thilo