Mic*_*ter 0 java scientific-notation decimal decimalformat
我有一个双,我试图将其转换为小数.当我使用decimalformat来实现这一点时,我得到以下内容:
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));
}
Run Code Online (Sandbox Code Playgroud)
我希望输出为.00021; 但是,我得到2.1E-4.任何人都可以帮助解释如何获得.00021而不是2.1E-4?
您正在解析结果DecimalFormat
- 您应该将其作为以下内容返回String
:
public String roundFiveDecimals(double d) {
DecimalFormat df = new DecimalFormat("#.#####");
return df.format(d);
}
Run Code Online (Sandbox Code Playgroud)
该double
值本身没有格式化的概念-它只是一个数字.这是将DecimalFormat
值格式化为文本然后你想要的工作...如果你然后将该文本转换回数字,你就失去了这项工作.