Afronden en afkappen
ROUND, CEIL, FLOOR en TRUNC.
Afronden en afkappen is een gratis SQL Academy-les op CoddyKit. Dit is les 2 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 SQL Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus SQL Academy bevat in totaal 4 lessen.
Waarom afronden belangrijk is
Bij het werken met getallen in SQL krijg je vaak resultaten met veel decimalen. Bijvoorbeeld: 10 gedeeld door 3 geeft 3.3333333...
SQL biedt ingebouwde functies om te bepalen hoeveel decimalen je weergeeft of opslaat: ROUND, CEIL, FLOOR en TRUNC. Deze zijn onmisbaar voor het presenteren van overzichtelijke financiële cijfers, metingen en statistieken.
SELECT 10.0 / 3.0 AS raw_result;ROUND: basisgebruik
De functie ROUND() rondt een getal af op een opgegeven aantal decimalen. Hierbij worden de standaardregels voor afronden gevolgd: cijfers vanaf 5 worden naar boven afgerond, cijfers lager dan 5 naar beneden.
De syntaxis is: ROUND(number, decimal_places). Als je het tweede argument weglaat, wordt afgerond op het dichtstbijzijnde gehele getal.
SELECT
ROUND(3.14159, 2) AS two_decimals,
ROUND(3.14159, 0) AS zero_decimals,
ROUND(3.14159) AS no_arg;ROUND met negatieve posities
Een minder bekende functie van ROUND() is dat je een negatief getal als tweede argument kunt meegeven. Hiermee wordt afgerond aan de linkerkant van het decimaalteken — handig om af te ronden op het dichtstbijzijnde tiental, honderdtal of duizendtal.
Bijvoorbeeld: ROUND(1567, -2) rondt af op het dichtstbijzijnde honderdtal en levert 1600 op.
SELECT
ROUND(1567.89, -1) AS nearest_ten,
ROUND(1567.89, -2) AS nearest_hundred,
ROUND(1567.89, -3) AS nearest_thousand;CEIL: altijd naar boven afronden
CEIL() (in sommige databases ook geschreven als CEILING()) rondt een getal altijd naar boven af op het dichtstbijzijnde gehele getal, ongeacht het decimale deel.
Dit is handig wanneer je ervoor moet zorgen dat je nooit onder een minimum uitkomt — bijvoorbeeld bij het berekenen van het aantal pagina's dat nodig is om een reeks resultaten weer te geven.
SELECT
CEIL(4.1) AS ceil_4_1,
CEIL(4.9) AS ceil_4_9,
CEIL(-4.1) AS ceil_neg_4_1,
CEIL(-4.9) AS ceil_neg_4_9;FLOOR: altijd naar beneden afronden
FLOOR() rondt een getal altijd naar beneden af op het dichtstbijzijnde gehele getal, ongeacht het decimale deel.
Let op dat FLOOR bij negatieve getallen van nul af afrondt — FLOOR(-4.1) levert -5 op, niet -4. Dit is tegengesteld aan wat sommige beginners verwachten.
SELECT
FLOOR(4.9) AS floor_4_9,
FLOOR(4.1) AS floor_4_1,
FLOOR(-4.1) AS floor_neg_4_1,
FLOOR(-4.9) AS floor_neg_4_9;CEIL tegenover FLOOR naast elkaar
Door CEIL en FLOOR samen te bekijken, wordt het verschil duidelijk. CEIL rondt altijd naar het volgende gehele getal naar boven af, terwijl FLOOR altijd naar beneden afrondt.
Zie het als een gebouw: FLOOR is het grondniveau waar je naartoe valt, CEIL is het plafond waar je naartoe stijgt.
SELECT
2.3 AS original,
CEIL(2.3) AS ceil_result,
FLOOR(2.3) AS floor_result
UNION ALL
SELECT
7.8,
CEIL(7.8),
FLOOR(7.8);TRUNC: afkappen zonder afronden
TRUNC() (of TRUNCATE() in MySQL) verwijdert decimale cijfers zonder enige afronding. Het kapt simpelweg de cijfers na de opgegeven positie af.
Dit verschilt van ROUND — TRUNC(4.9) levert 4 op, niet 5. Het decimale deel wordt gewoon weggegooid.
SELECT
TRUNC(4.9) AS trunc_4_9,
TRUNC(4.1) AS trunc_4_1,
TRUNC(-4.9) AS trunc_neg_4_9,
TRUNC(3.14159, 3) AS trunc_3_decimals;ROUND en TRUNC vergeleken
Het belangrijkste verschil tussen ROUND en TRUNC is dat ROUND de waarde verandert op basis van het volgende cijfer, terwijl TRUNC altijd alles na het afkappunt weggooit zonder aanpassing.
Gebruik ROUND wanneer je de wiskundig dichtstbijzijnde waarde wilt. Gebruik TRUNC wanneer je de precisie strikt wilt verwijderen zonder naar boven af te ronden — vaak bij financiële berekeningen waarbij je nooit te veel mag betalen.
SELECT
ROUND(2.567, 1) AS rounded,
TRUNC(2.567, 1) AS truncated;
-- ROUND gives 2.6 (5 rounds up)
-- TRUNC gives 2.5 (just cuts off)ROUND gebruiken in een echte tabel
Afrondingsfuncties zijn het krachtigst wanneer je ze toepast op kolommen van tabellen. Hier maken we een eenvoudige tabel products met prijzen en gebruiken we ROUND om deze overzichtelijk weer te geven.
Dit patroon komt veel voor in e-commerce- en boekhoudquery's, waarbij onbewerkte berekeningen veel decimalen opleveren.
CREATE TABLE products (
name TEXT,
price NUMERIC
);
INSERT INTO products VALUES
('Widget', 9.999),
('Gadget', 24.3333),
('Doohickey', 4.5678);
SELECT name, ROUND(price, 2) AS display_price
FROM products;Functies combineren in een query
Je kunt afrondingsfuncties combineren met andere SQL-expressies. Je kunt bijvoorbeeld een prijs met korting berekenen en die vervolgens afronden voor weergave.
Deze query past 15% korting toe, rondt het resultaat af op 2 decimalen en toont ook FLOOR en CEIL van de prijs met korting — zo krijg je de minimale en maximale prijzen als gehele getallen.
SELECT
name,
price,
ROUND(price * 0.85, 2) AS discounted,
FLOOR(price * 0.85) AS min_price,
CEIL(price * 0.85) AS max_price
FROM products;Paginering met CEIL
Een klassiek gebruik van CEIL is het berekenen van het totale aantal pagina's in een pagineringssysteem. Als je 97 rijen hebt en er 10 per pagina weergeeft, heb je CEIL(97 / 10.0) = 10 pagina's nodig (niet 9, want de laatste pagina heeft 7 rijen).
Deel altijd door een decimaal getal (10.0 in plaats van 10) om gehele getallendeling te voorkomen, waarbij de rest wordt weggegooid voordat CEIL erop kan werken.
SELECT
97 AS total_rows,
10 AS rows_per_page,
CEIL(97 / 10.0) AS total_pages;Snelle controle
Toets je begrip van afrondingsfuncties in SQL.
Samenvatting van de les
Goed gedaan! Hier is een samenvatting van de afrondings- en afkappingsfuncties in SQL:
- ROUND(n, d) — rondt af op d decimalen volgens de standaardregels van de wiskunde (5+ wordt naar boven afgerond).
- CEIL(n) — rondt altijd naar boven af op het dichtstbijzijnde gehele getal.
- FLOOR(n) — rondt altijd naar beneden af op het dichtstbijzijnde gehele getal.
- TRUNC(n, d) — verwijdert cijfers na positie d zonder af te ronden; de waarde wordt nooit groter.
Gebruik ROUND voor weergave en statistieken, CEIL voor berekeningen van de minimumcapaciteit (zoals pagina's), FLOOR voor berekeningen van het maximaal passende aantal en TRUNC wanneer je nooit naar boven mag afronden — vooral in financiële contexten.
Leer SQL 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
- 46
- Lessen
- 183
Veelgestelde vragen
Is de les “Afronden en afkappen” gratis?
Ja — de volledige tekst van “Afronden en afkappen” 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 SQL Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus SQL Academy bevat in totaal 4 lessen.
Wat leer ik in “Afronden en afkappen”?
ROUND, CEIL, FLOOR en TRUNC. Je oefent met SQL 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 SQL Academy te beginnen?
Ervaring vooraf is niet nodig. SQL 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 2 van 4.
Hoe lang duurt de les “Afronden en afkappen”?
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 SQL Academy?
Ja. Elke les over SQL 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
- Rekenkundige bewerkingen en operatoren
- Afronden en afkappen
- Gehele versus decimale deling
- Handige wiskundige functies