SQL Academy · Les

Afronden en afkappen

ROUND, CEIL, FLOOR en TRUNC.

Les 2 van 413 stappen

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.

Gratis beginnen

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

  1. Rekenkundige bewerkingen en operatoren
  2. Afronden en afkappen
  3. Gehele versus decimale deling
  4. Handige wiskundige functies
← Terug naar SQL Academy