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十进制格式,如何根据不同的指数值进行十进制格式?的主要内容,如果未能解决你的问题,请参考以下文章
C连载18-转换说明,转换说明修饰符sizeof返回类型可移植