2017-07-31 42 views
0

我有一種將數值轉換爲格式化字符串的方法。它運行良好,但只適用於低於android 7的版本。在Android 7及更高版本上,它將被忽略。DecimalFormat在android 7上無法正常工作

public static String printableSumSeparators(double sum, String format) { 
    DecimalFormatSymbols dfSymbols = new DecimalFormatSymbols(); 
    dfSymbols.setDecimalSeparator(COMMA_SEPARATOR); 
    dfSymbols.setGroupingSeparator(' '); 
    DecimalFormat df = new DecimalFormat(format, dfSymbols); 
    df.setGroupingUsed(true); 
    return df.format(sum); 
} 

其中COMMA_SEPARATOR =',';
該方法的輸入饋送以2個參數,該數字本身的轉換,並在表格格式:## 0#
實施例:
輸入:500000
輸出:500 000
但在Android的7它不工作和數量沒有被格式化
問題:如何修復這個bug,並使其在Android的

+0

你想輸出500 000? –

+0

是的,沒錯 – metalink

回答

0

也許下面的代碼的最新版本的工作是對您有用,因爲它像工作使用逗號分隔十進制值。

protected String getCommaSeparated(String s) 
{ 
    try 
    { 
     if (s.length() > 0) 
     { 
      s = 
      customFormat("##,##,##0",Double.parseDouble(s.toString().replace(",",""))); 
      if(s.length() > 0) 
      { 
       return s; 
      } 
     } 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 

    return s; 
} 

public String customFormat(String pattern, double value) 
{ 
    DecimalFormat myFormatter = new DecimalFormat(pattern); 
    String output = myFormatter.format(value); 
    return output; 
} 
0

在Android的最新版本,還需要setGroupingSize。像這樣:

​​