Java Academy · Les

Afronding en schaal

Beheer precisie en afrondingsmodi

Les 3 van 413 stappen

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
  • setScale legt de decimalen vast en vereist een RoundingMode
  • HALF_UP is alledaagse afronding en HALF_EVEN is afronden volgens de bankiersregel
  • CEILING, FLOOR, UP en DOWN dekken richtingsgebonden afronding af
  • Geef bij delen altijd een modus op om fouten te voorkomen
Gratis beginnen

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.

Alle lessen in deze cursus

  1. Waarom geen double voor geld
  2. Werken met BigDecimal
  3. Afronding en schaal
  4. BigInteger voor enorme getallen
← Terug naar Java Academy