Numeriske Datatyper
Hele tal
Heltalsdatatyper er de mest anvendte til hele tal. Datatypen int kan indeholde værdier inden for intervallet -2,147,483,648 til 2,147,483,647.
main.cpp
12345678910#include <iostream> int main() { int goodNumber = 12; int tooLarge = 2147483648; std::cout << "Printing goodNumber: " << goodNumber << std::endl; std::cout << "Printing tooLarge: " << tooLarge << std::endl; }
Dette sker, fordi når du erklærer en int-variabel, allokeres der præcis 4 bytes af din computers hukommelse. Og tal over 2147483647 (eller under -2147483648) kan ikke være inden for disse 4 bytes. Heldigvis findes der andre datatyper, som kan allokere mere (eller mindre) plads efter behov. Her er tabellen:
Du kan derfor bruge long til at gemme store tal (f.eks. verdens befolkning). Du kan også bruge short, hvis du er sikker på, at dit tal ikke overstiger området fra -32,768 til 32,767 (f.eks. lagring af en brugers alder). Brug af short vil optage mindre hukommelse.
main.cpp
12345678910111213#include <iostream> int main() { short age = 22; // for small numbers int likes = 143200; // for larger numbers long population = 8200000000; // for very large numbers // Display the values std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Vær opmærksom på den datatype, du vælger. Hvis et types område overskrides, vil C++-kompilatoren ikke advare dig, og du kan modtage en uventet værdi uden nogen fejlmeddelelse.
Flydende kommatal
Datatyperne ovenfor er beregnet til at gemme hele tal. Hvis vi forsøger at tildele 1.6 til en af disse, vil vi få følgende resultat:
main.cpp
12345678#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }
int-typen afkorter den decimale del af et tal. Denne opførsel er den samme for short og long typer. For at gemme flydende kommatal (decimaltal) skal du bruge enten float eller double datatypen.
Her er et eksempel på brug af double til at gemme 1.6.
main.cpp
12345678910#include <iostream> int main() { float floatNum = 123.45678; double doubleNum = 123.45678; std::cout << "using float:" << floatNum - 123 << std::endl; std::cout << "using double:" << doubleNum - 123 << std::endl; }
Da float-typen kun har en præcision på syv cifre, ligger tallet 123.456789 allerede uden for dens rækkevidde. Det kan føre til unøjagtige resultater (som vist i eksemplet nedenfor). Det er derfor bedre at bruge double som standard, medmindre du er sikker på, at float's præcision er tilstrækkelig.
Det er selvfølgelig muligt at bruge float eller double til at gemme hele tal, da disse er decimaltal med en decimaldel lig med 0. Dog bør man som god praksis anvende short/int/long, hvis en variabel kun skal indeholde hele tal (f.eks. befolkningstal eller antal likes).
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain the difference between float and double in more detail?
When should I use short, int, or long for whole numbers?
Are there any other numeric data types I should know about?
Awesome!
Completion rate improved to 3.85
Numeriske Datatyper
Stryg for at vise menuen
Hele tal
Heltalsdatatyper er de mest anvendte til hele tal. Datatypen int kan indeholde værdier inden for intervallet -2,147,483,648 til 2,147,483,647.
main.cpp
12345678910#include <iostream> int main() { int goodNumber = 12; int tooLarge = 2147483648; std::cout << "Printing goodNumber: " << goodNumber << std::endl; std::cout << "Printing tooLarge: " << tooLarge << std::endl; }
Dette sker, fordi når du erklærer en int-variabel, allokeres der præcis 4 bytes af din computers hukommelse. Og tal over 2147483647 (eller under -2147483648) kan ikke være inden for disse 4 bytes. Heldigvis findes der andre datatyper, som kan allokere mere (eller mindre) plads efter behov. Her er tabellen:
Du kan derfor bruge long til at gemme store tal (f.eks. verdens befolkning). Du kan også bruge short, hvis du er sikker på, at dit tal ikke overstiger området fra -32,768 til 32,767 (f.eks. lagring af en brugers alder). Brug af short vil optage mindre hukommelse.
main.cpp
12345678910111213#include <iostream> int main() { short age = 22; // for small numbers int likes = 143200; // for larger numbers long population = 8200000000; // for very large numbers // Display the values std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Vær opmærksom på den datatype, du vælger. Hvis et types område overskrides, vil C++-kompilatoren ikke advare dig, og du kan modtage en uventet værdi uden nogen fejlmeddelelse.
Flydende kommatal
Datatyperne ovenfor er beregnet til at gemme hele tal. Hvis vi forsøger at tildele 1.6 til en af disse, vil vi få følgende resultat:
main.cpp
12345678#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }
int-typen afkorter den decimale del af et tal. Denne opførsel er den samme for short og long typer. For at gemme flydende kommatal (decimaltal) skal du bruge enten float eller double datatypen.
Her er et eksempel på brug af double til at gemme 1.6.
main.cpp
12345678910#include <iostream> int main() { float floatNum = 123.45678; double doubleNum = 123.45678; std::cout << "using float:" << floatNum - 123 << std::endl; std::cout << "using double:" << doubleNum - 123 << std::endl; }
Da float-typen kun har en præcision på syv cifre, ligger tallet 123.456789 allerede uden for dens rækkevidde. Det kan føre til unøjagtige resultater (som vist i eksemplet nedenfor). Det er derfor bedre at bruge double som standard, medmindre du er sikker på, at float's præcision er tilstrækkelig.
Det er selvfølgelig muligt at bruge float eller double til at gemme hele tal, da disse er decimaltal med en decimaldel lig med 0. Dog bør man som god praksis anvende short/int/long, hvis en variabel kun skal indeholde hele tal (f.eks. befolkningstal eller antal likes).
Tak for dine kommentarer!