我有一个 double ,我正在尝试将其转换为小数。当我使用十进制格式来实现此目的时,我得到以下结果:
public void roundNumber(){
double d = 2.081641999208976E-4;
JOptionPane.showMessageDialog(null,roundFiveDecimals(d));
}
public double roundFiveDecimals(double d) {
DecimalFormat df = new DecimalFormat("#.#####");
return Double.valueOf(df.format(d));
}
我希望输出为.00021;但是,我得到 2.1E-4。谁能帮助解释如何获得 .00021 而不是 2.1E-4?
最佳答案
您正在解析来自DecimalFormat
的结果 - 您应该将其作为字符串
返回:
public String roundFiveDecimals(double d) {
DecimalFormat df = new DecimalFormat("#.#####");
return df.format(d);
}
double
值本身没有格式概念 - 它只是一个数字。 DecimalFormat
的工作是将值格式化为您想要的文本...如果您随后将该文本转换回为数字,那么您就失去了这项工作。
关于java - 科学记数法转十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6878623/