I have a double and i am trying to convert it to a decimal. When i use decimalformat to achieve this i get the following:
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));
}
I want the output to be .00021; however, i get 2.1E-4. Can anyone help explain how to get .00021 and not 2.1E-4?
You’re parsing the result from
DecimalFormat– you should be returning it as aString:The
doublevalue itself has no concept of formatting – it’s just a number. It’s the job ofDecimalFormatto format the value into text however you want… if you then convert that text back into a number, you’ve lost that work.