Android十进制格式,如何根据不同的指数值进行十进制格式化?

时间:2017-03-09 15:09:19

标签: java android numbers number-formatting

我正在开发单位转换应用程序,需要对不同的指数值进行适当的十进制格式化。

  1. 假设答案是1e-6,答案应为0.000001
  2. 假设答案是2.1345e3,答案应该是2134.5
  3. 假设答案是2.13456e-9,答案应保留2.13456e-9
  4. 假设答案是1987.345e-3,答案应该是1.98734e-6
  5. 我附加了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;
    

    谢谢,

1 个答案:

答案 0 :(得分: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);
}