我正在开发单位转换应用程序,需要针对不同的指数值进行适当的十进制格式设置。
- 假设如果答案是 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中格式化的代码,所有值都是 double 的。
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);
}
关于java - Android十进制格式化,如何根据不同的指数值进行十进制格式化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42698805/