Afronden in java

Status
Niet open voor verdere reacties.

Clank

Gebruiker
Lid geworden
24 nov 2007
Berichten
130
Is er in java een functie om bijvoorbeeld een float af te ronden naar bijvoorbeeld 12.2 in plaats van 12.22222222222222222222222223?
 
Ik ken een dergelijke functie niet. Voor zover ik weet is de enige mogelijkheid om dit te doen de variabele eerst te vermenigvuldigen met 10, dan afronden (en casten naar een float/double) en weer delen door 10.
 
omdat het probleem al is opgelost, kom ik niet met een geheel antwoord.

ik heb is iets gelezen over: .2f in de System.out.println(..) wat met afronding te maken had. moet je maar even naar kijken of het iets is.
 
System.out.println() is lelijk. je kunt veel beter met returns werken en het uiteindelijk in een mooie interface zetten.
 
Ik weet dat dit topic al gesloten is, maar voor mensen met hetzelfde probleem. Je kan dit oplossen door printf (printformat).

bijv. System.out.printf( "Rentefactor:%5.2f%n", renteFactor );
de specifier %5.2f geeft aan dat het om een gebroken getal gaat dat in totaal 5 posities krijgt waarvan 2 achter de decimale punt. de f staat voor floating point getal.
de %n staat voor een nieuwe regel.
 
het probleem komt dan kijken als je bijvoorbeeld rond de 999.02 zit. als er dan een getal extra komt, dan loopt alles in de soep. daarom om fouten te voorkomen gebruik ik liever de eerste methode.
 
sorry dat ik erover doorzaag, maar zo kan ik er ook weer van leren :)
bedoel je dat je met 1 extra getal ervoor krijgen: van 999 naar 1000? dan zou je toch gewoon .2f% kunnen gebruiken ipv 3.2f% dan kan het getal voor de komma meer/minder getallen hebben als ik het goed heb
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan