Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android十进制格式化,如何根据不同的指数值进行十进制格式化?_Java_Android_Numbers_Number Formatting - Fatal编程技术网

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

Java Android十进制格式化,如何根据不同的指数值进行十进制格式化?,java,android,numbers,number-formatting,Java,Android,Numbers,Number Formatting,我正在开发单位转换应用程序,需要使十进制格式适合不同的指数值 假设答案为1e-6,则答案应为0.000001 假设答案是2.1345e3,答案应该是2134.5 假设答案是2.13456e-9,答案应该是2.13456e-9 假设答案是1987.345e-3,答案应该是1.98734e-6 我附上了iphone和android十进制格式的图像。 正如您在android中看到的,所有值的格式都是相同的,但我需要为不同的值设置不同的格式 如果需要更多信息,请告诉我。下面是我在android中格式

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

  • 假设答案为1e-6,则答案应为0.000001
  • 假设答案是2.1345e3,答案应该是2134.5
  • 假设答案是2.13456e-9,答案应该是2.13456e-9
  • 假设答案是1987.345e-3,答案应该是1.98734e-6
  • 我附上了iphone和android十进制格式的图像。

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

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

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

    谢谢,

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


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

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