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.format
te 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.format
gebruiken (handtekening van dezelfde methode), of een java.util.Formatter
maken die op dezelfde manier werkt.