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

Posted

技术标签:

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

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

    假设如果答案是 1e-6 答案应该是 0.000001 假设如果答案是 2.1345e3 答案应该是 2134.5 假设如果答案是 2.13456e-9 答案应该是 2.13456e-9 假设如果答案是 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;

谢谢,

【问题讨论】:

【参考方案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);

【讨论】:

以上是关于Android十进制格式,如何根据不同的指数值进行十进制格式?的主要内容,如果未能解决你的问题,请参考以下文章

Excel表格如何实现根据数值自动填充不同的颜色

转换说明符和转换说明修饰符

如何将证书转换为十进制模数和指数

C连载18-转换说明,转换说明修饰符sizeof返回类型可移植

如何在Android Studio中对包含数值的EditText字段执行基本计算

实验 9 根据材料编程