【问题标题】:Android decimal formatting, How to make decimal formatting based on different exponential value?Android十进制格式,如何根据不同的指数值进行十进制格式?
【发布时间】:2017-03-09 15:09:19
【问题描述】:

我正在开发单位转换应用程序,需要为不同的指数值设置适合的十进制格式。

  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

正如您在 android 中看到的,所有值的格式都是相同的,但我需要为不同的值设置不同的格式。

如果需要更多信息,请告诉我。以下是我在android中格式化的代码,所有的值都是双精度的。

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

谢谢,

【问题讨论】:

    标签: java android numbers number-formatting


    【解决方案1】:

    由于您需要不同尺寸的不同格式,您可以将连续体划分为不同的区域,并将每个区域与其格式相匹配。例如(我不确定模式是否有意义,但这个想法很简单):

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多