Afronding en schaal
Beheer precisie en afrondingsmodi
Afronding en schaal is een gratis Java Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Java Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Java Academy bevat in totaal 4 lessen.
Schaal en precisie
Elke BigDecimal heeft een schaal: het aantal cijfers rechts van de decimale komma. De waarde 12.340 heeft een schaal van 3. Door de schaal te beheren, kun je geld altijd met precies twee decimalen weergeven.
De schaal controleren
Roep scale() aan om te zien hoeveel decimalen een waarde bevat en precision() voor het totale aantal significante cijfers.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("12.340");
System.out.println(v.scale());
System.out.println(v.precision());
}
}Met setScale decimalen vastleggen
setScale dwingt een waarde af op een gekozen aantal decimalen. Je moet een RoundingMode doorgeven als afronden nodig is.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("12.3456");
System.out.println(v.setScale(2, RoundingMode.HALF_UP));
}
}HALF_UP, de gebruikelijke modus
RoundingMode.HALF_UP rondt af naar de dichtstbijzijnde waarde en rondt precies op een middenpunt van nul af. Dit is de alledaagse afronding die mensen op school leren.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
System.out.println(new BigDecimal("2.5").setScale(0, RoundingMode.HALF_UP));
System.out.println(new BigDecimal("3.5").setScale(0, RoundingMode.HALF_UP));
}
}HALF_EVEN, afronden volgens de bankiersregel
HALF_EVEN rondt middenpunten af naar het dichtstbijzijnde even cijfer. Dit vermindert vertekening bij veel afrondingen, en daarom geven banken hier de voorkeur aan.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
System.out.println(new BigDecimal("2.5").setScale(0, RoundingMode.HALF_EVEN));
System.out.println(new BigDecimal("3.5").setScale(0, RoundingMode.HALF_EVEN));
}
}CEILING en FLOOR
CEILING rondt altijd af in de richting van positieve oneindigheid en FLOOR altijd in de richting van negatieve oneindigheid, ongeacht het cijfer dat wordt weggelaten.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("2.1");
System.out.println(v.setScale(0, RoundingMode.CEILING));
System.out.println(v.setScale(0, RoundingMode.FLOOR));
}
}DOWN en UP
DOWN kapt af in de richting van nul, terwijl UP altijd van nul af rondt. DOWN is eenvoudig afkappen.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("2.9");
System.out.println(v.setScale(0, RoundingMode.DOWN));
System.out.println(v.setScale(0, RoundingMode.UP));
}
}Afronden tijdens het delen
Delen kan oneindige decimalen opleveren, dus geef de schaal en afrondingsmodus direct op in de aanroep van divide.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal bill = new BigDecimal("100.00");
BigDecimal people = new BigDecimal("3");
System.out.println(bill.divide(people, 2, RoundingMode.HALF_UP));
}
}Overbodige nullen verwijderen
stripTrailingZeros verwijdert extra nullen. Combineer dit met toPlainString om wetenschappelijke notatie in de uitvoer te voorkomen.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("12.300");
System.out.println(v.stripTrailingZeros().toPlainString());
}
}Geld opmaken
Stel voor de weergave de schaal met HALF_UP in op 2, zodat prijzen altijd twee decimalen tonen, ook bij hele bedragen.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal amount = new BigDecimal("7");
System.out.println(amount.setScale(2, RoundingMode.HALF_UP));
}
}Een modus kiezen
Kies HALF_UP voor gewone afronding in de gebruikersweergave en HALF_EVEN voor boekhouding om cumulatieve vertekening te verminderen. Geef altijd een modus op, zodat je code nooit een fout veroorzaakt bij niet-eindige resultaten.
Korte controle
Controleer je kennis van schaal en afronding.
Samenvatting
Je hebt geleerd hoe je precisie beheerst:
- De schaal is het aantal cijfers na de decimale komma
setScalelegt de decimalen vast en vereist eenRoundingModeHALF_UPis alledaagse afronding enHALF_EVENis afronden volgens de bankiersregelCEILING,FLOOR,UPenDOWNdekken richtingsgebonden afronding af- Geef bij delen altijd een modus op om fouten te voorkomen
Leer Java met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 104
- Lessen
- 374
Veelgestelde vragen
Is de les “Afronding en schaal” gratis?
Ja — de volledige tekst van “Afronding en schaal” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Java Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Java Academy bevat in totaal 4 lessen.
Wat leer ik in “Afronding en schaal”?
Beheer precisie en afrondingsmodi Je oefent met Java Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Java Academy te beginnen?
Ervaring vooraf is niet nodig. Java Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Afronding en schaal”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Java Academy?
Ja. Elke les over Java Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.