2017-03-09 88 views
1

我正在開發單位轉換應用程序,並且需要對不同的指數值進行適當的小數格式化。Android十進制格式化,如何根據不同的指數值進行十進制格式化?

  1. 假設,如果答案是1E-6的答案應該是0.000001
  2. 假設,如果答案是2.1345e3答案應該是2134.5
  3. 假設,如果答案是2.13456e-9的答案應該留2.13456e-9
  4. 假設答案是1987.345e-3答案應該是1.98734e-6

我附上iphone和android十進制格式圖片。 ios and android number formatting

ios and android number formatting

正如你可以在android系統格式化看到的是同樣爲所有的價值,但我需要爲不同的值不同的格式。

請讓我知道是否需要更多信息。以下是我在android中用於格式化的代碼,所有值都只有兩倍。

DecimalFormat df = new DecimalFormat("######.#####E+0"); 
String answer = df.format(value); 
return answer; 

感謝,

回答

0

正如你想的不同格式不同大小,你可以把連續成不同的區域,並符合各區域的格式。例如(我不確定模式是否有意義,但想法很簡單):

public String myFormat(double value) { 
    String pattern; 

    if (value > 1) { 
     pattern = "######.#E+0"; 
    } else if (value > 0.01) { 
     pattern = "#.#####E+3"; 
    } else { 
     pattern = "######.#####E+0"; 
    } 

    return new DecimalFormat(pattern).format(value); 
}