如果值是这样的 (0.0007) 以小数点后 3 个零结尾,我得到的结果是 4.0E-4 .
请告诉我如何解决这个问题
这是我的程序。
package com;
import java.text.DecimalFormat;
public class Test {
public static void main(String args[]) {
try {
String result = "";
Test test = new Test();
double value = 0.0004;
if (value < 1) {
result = test.numberFormat(value, 4);
} else {
result = test.numberFormat(value, 2);
}
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
public String numberFormat(double d, int decimals) {
if (2 == decimals)
return new DecimalFormat("#,###,###,##0.00").format(d);
else if (0 == decimals)
return new DecimalFormat("#,###,###,##0").format(d);
else if (3 == decimals)
return new DecimalFormat("#,###,###,##0.000").format(d);
else if (4 == decimals)
new DecimalFormat("#,###,###,##0.00##").format(d);
return String.valueOf(d);
}
}
最佳答案
你只是忘记了 return 声明。
else if (4 == decimals)
return new DecimalFormat("#,###,###,##0.00##").format(d);
所以在 4
的情况下,您使用 DecimalFormat
来格式化您的数字,但随后仅在最后的 else 之后返回 double 的正常字符串表示形式。
关于java - 在这种情况下如何消除指数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17297509/