tags:

views:

48

answers:

2

Hey guys,
I am trying to format a double to 2 decimal places with leading zeros and there's no luck. Here is my code:

Double price = 32.0;
DecimalFormat decim = new DecimalFormat("#.##");
Double price2 = Double.parseDouble(decim.format(price));

And I want output to be 32.00 instead I get 32.0
Any solutions??

+4  A: 

Try this:

 DecimalFormat decim = new DecimalFormat("#.00");
TofuBeer
tried this and its not working..
Deepesh
+3  A: 

OP wants leading zeroes. If that's the case, then as per Tofubeer:

    DecimalFormat decim = new DecimalFormat("0.00");

edit:

Remember, we're talking about formatting numbers here, not the internal representation of the numbers.

    Double price = 32.0;
    DecimalFormat decim = new DecimalFormat("0.00");
    Double price2 = Double.parseDouble(decim.format(price));
    System.out.println(price2);

will print price2 using the default format. If you want to print the formatted representation, print using the format:

    String s = decim.format(price);
    System.out.println("s is '"+s+"'");

In this light, I don't think your parseDouble() is doing what you want, nor can it.

Tony Ennis
also tried this and still not working
Deepesh
It works for me. Post some example data and the results produced by the code above.
Tony Ennis
New code posted above.
Tony Ennis
Hey thanks. the above code works perfect for me. I realized I was making a mistake by converting it to double again when actually I jus had t print it. Thanks once again.
Deepesh
you're welcome, sir.
Tony Ennis