Als de waarde 200,3456
is, dan moet het geformatteerd worden als 200,34
.
Als het 200
is, dan moet het 200.00
zijn.
Als je alleen een dubbeltje
wilt afdrukken met twee cijfers achter de komma, gebruik dan iets als dit:
double value = 200.3456;
System.out.printf("Value: %.2f", value);
Als je het resultaat in een String
wilt hebben in plaats van afgedrukt te worden naar de console, gebruik dan String.format()
met dezelfde argumenten:
String result = String.format("%.2f", value);
Of gebruik de klasse DecimalFormat
:
DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("Value: " + df.format(value));
De makkelijkste manier, zou zijn om een truc als deze te doen;
double val = ....;
val = val*100;
val = Math.round(val);
val = val /100;
Als Val begint bij 200.3456, dan gaat het naar 20034.56, dan wordt het afgerond naar 20035 en delen we het om 200.34 te krijgen.
als je altijd naar beneden wilt afronden kunnen we altijd afkappen door te casten naar een int:
double val = ....;
val = val*100;
val = (double)((int) val);
val = val /100;
Deze techniek zal in de meeste gevallen werken, want voor zeer grote dubbels (positief of negatief) kan het overlopen. Maar als je weet dat je waarden in een geschikt bereik liggen, dan zou dit voor jou moeten werken.
Het afronden van een dubbel getal is meestal niet wat je wilt. Gebruik in plaats daarvan String.format()
om het in het gewenste formaat weer te geven.