Beste manier om een dubbele waarde te formatteren tot 2 decimalen

Ik heb te maken met veel dubbele waarden in mijn toepassing, is er een gemakkelijke manier om de opmaak van decimale waarden in Java af te handelen?

Is er een andere betere manier om dit te doen dan

DecimalFormat df = new DecimalFormat("#.##");

Wat ik eigenlijk wil doen, is dubbele waarden formatteren zoals

23.59004  to 23.59
35.7  to 35.70
3.0 to 3.00
9 to 9.00

Antwoord 1, autoriteit 100%

Nee, er is geen betere manier.

Eigenlijk heb je een fout in je patroon. Wat je wilt is:

DecimalFormat df = new DecimalFormat("#.00"); 

Let op de "00", wat exacttwee decimalen betekent.

Als u "#.##"gebruikt (#betekent “optioneel” cijfer), dan zullen er nullen aan het einde vallen – dwz new DecimalFormat("#.##").format(3.0d);drukt alleen "3"af, niet "3.00".


Antwoord 2, autoriteit 70%

Een alternatief is om String.formatte gebruiken:

double[] arr = { 23.59004,
    35.7,
    3.0,
    9
};
for ( double dub : arr ) {
  System.out.println( String.format( "%.2f", dub ) );
}

uitvoer:

23.59
35.70
3.00
9.00

U kunt ook System.out.formatgebruiken (handtekening van dezelfde methode), of een java.util.Formattermaken die op dezelfde manier werkt.

Other episodes