Conversies tussen integers en floats
Aandachtspunten rond precisie
Conversies tussen integers en floats is een gratis C 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 C Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus C Academy bevat in totaal 4 lessen.
Twee werelden van getallen
C kent gehele getallen (exact, zonder fractie) en kommagetallen (bij benadering, met een fractie). Als je ertussen converteert, verandert de manier waarop een waarde wordt opgeslagen.
#include <stdio.h>
int main(void) {
int i = 10;
double d = 10.5;
printf("%d %.1f\n", i, d);
return 0;
}int verbreden naar double
De meeste int-waarden passen exact in een double, dus verbreden is veilig.
#include <stdio.h>
int main(void) {
int n = 1000;
double d = n;
printf("d = %.1f\n", d);
return 0;
}double versmallen naar int
Bij de omzetting van double naar int wordt naar nul afgekapt, waardoor informatie verloren kan gaan.
#include <stdio.h>
int main(void) {
double d = 12.75;
int n = (int)d;
printf("n = %d\n", n);
return 0;
}Negatief afkappen
Afkappen naar nul betekent dat -2.9 -2 wordt, niet -3.
#include <stdio.h>
int main(void) {
double d = -2.9;
int n = (int)d;
printf("n = %d\n", n);
return 0;
}Precisie van float tegenover double
float bevat ongeveer 7 significante cijfers en double ongeveer 15. Bij het converteren van double naar float gaat precisie verloren.
#include <stdio.h>
int main(void) {
double d = 3.14159265358979;
float f = (float)d;
printf("%.5f\n", f);
return 0;
}Grote int naar float
Een zeer grote int kan in een float niet exact worden weergegeven, waardoor een afgerond resultaat ontstaat.
#include <stdio.h>
int main(void) {
int big = 16777217;
float f = (float)big;
printf("%.1f\n", f);
return 0;
}Afronden tegenover afkappen
Een cast kapt af. Tel voor positieve waarden eerst 0.5 op om af te ronden, of gebruik bibliotheekfuncties.
#include <stdio.h>
int main(void) {
double d = 4.6;
int truncated = (int)d;
int rounded = (int)(d + 0.5);
printf("%d %d\n", truncated, rounded);
return 0;
}Een gemiddelde berekenen
Voor het middelen van gehele getallen heb je deling met kommagetallen nodig om de fractie te behouden.
#include <stdio.h>
int main(void) {
int sum = 7, count = 2;
double avg = (double)sum / count;
printf("avg = %.2f\n", avg);
return 0;
}Valkuil bij gelijkheid van floats
Omdat floats benaderingen zijn, is vergelijken met == riskant. Vergelijk binnen een kleine tolerantie.
#include <stdio.h>
#include <math.h>
int main(void) {
double a = 0.1 + 0.2;
if (fabs(a - 0.3) < 1e-9)
printf("close enough\n");
return 0;
}Typen mengen in voorwaarden
Bij het vergelijken van een int met een double wordt de int gepromoveerd, waardoor de vergelijking met kommagetallen plaatsvindt.
#include <stdio.h>
int main(void) {
int n = 3;
double d = 3.5;
if (n < d)
printf("3 < 3.5\n");
return 0;
}Het juiste type kiezen
Gebruik gehele getallen voor aantallen en indexen; gebruik kommagetallen voor metingen en verhoudingen.
#include <stdio.h>
int main(void) {
int items = 4;
double pricePer = 2.5;
printf("total = %.2f\n", items * pricePer);
return 0;
}Korte controle
Test je begrip van conversies tussen gehele getallen en floats.
Samenvatting: conversies tussen gehele getallen en floats
Je hebt geleerd hoe getallen veranderen tussen typen.
- int naar double wordt meestal veilig verbreed
- double naar int wordt naar nul afgekapt
- float bevat minder cijfers dan double
- Rond af door 0.5 op te tellen of bibliotheekfuncties te gebruiken
- Vermijd
==voor floats; gebruik een tolerantie
Leer C 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
- 39
- Lessen
- 144
Veelgestelde vragen
Is de les “Conversies tussen integers en floats” gratis?
Ja — de volledige tekst van “Conversies tussen integers en floats” 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 C Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus C Academy bevat in totaal 4 lessen.
Wat leer ik in “Conversies tussen integers en floats”?
Aandachtspunten rond precisie Je oefent met C 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 C Academy te beginnen?
Ervaring vooraf is niet nodig. C 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 “Conversies tussen integers en floats”?
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 C Academy?
Ja. Elke les over C 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
- Impliciete conversies
- Expliciete casts
- Conversies tussen integers en floats
- Conversievalkuilen