2017-03-09 110 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); 
}