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 præcis 4 bytes af din computers hukommelse. Og tal over 2147483647
(eller under -2147483648
) kan ikke være i disse 4 bytes. Heldigvis findes der andre datatyper, som kan allokere mere (eller mindre) plads efter behov. Her er tabellen:
Datatype | ||
---|---|---|
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
Det er muligt at anvende long
til lagring af store tal (f.eks. verdens befolkningstal). Det er også muligt at anvende short
, hvis det er sikkert, at tallet ikke overstiger intervallet -32,768
til 32,767
(f.eks. lagring af en brugers alder). Anvendelse af short
optager mindre hukommelse.
main.cpp
123456789101112#include <iostream> int main() { short age = 22; int likes = 143200; long population = 8200000000; std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Bemærk
Vær opmærksom på den datatype, du vælger. Hvis et types interval overskrides, vil C++-kompilatoren ikke advare dig, og du kan modtage en uventet værdi uden nogen fejlmeddelelse.
Flydende tal
Datatyperne ovenfor er designet til at gemme hele tal. Hvis vi forsøger at tildele 1.6
til en af dem, 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; }
Datatypen int
afkorter den decimale del af et tal. Denne opførsel er den samme for typerne short
og long
. For at gemme flydende kommatal (decimaltal) skal du bruge enten datatypen float
eller double
.
Datatype | ||
---|---|---|
float | ||
double |
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; }
Bemærk
Da
float
-typen kun har en præcision på syv cifre, er tallet 123.456789 allerede uden for dens rækkevidde. Dette kan føre til unøjagtige resultater (som vist i eksemplet nedenfor). Det er derfor bedre at brugedouble
som standard, medmindre du er sikker på, atfloat
's præcision er tilstrækkelig.
Det er selvfølgelig muligt at bruge float
eller double
til at gemme heltal, da disse er decimaltal med en decimaldel lig med 0. Som god praksis bør man dog anvende short
/int
/long
, hvis en variabel kun skal indeholde heltalsværdier (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?
What happens if I try to store a number outside the range of a data type?
When should I use short, int, or long in my programs?
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 præcis 4 bytes af din computers hukommelse. Og tal over 2147483647
(eller under -2147483648
) kan ikke være i disse 4 bytes. Heldigvis findes der andre datatyper, som kan allokere mere (eller mindre) plads efter behov. Her er tabellen:
Datatype | ||
---|---|---|
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
Det er muligt at anvende long
til lagring af store tal (f.eks. verdens befolkningstal). Det er også muligt at anvende short
, hvis det er sikkert, at tallet ikke overstiger intervallet -32,768
til 32,767
(f.eks. lagring af en brugers alder). Anvendelse af short
optager mindre hukommelse.
main.cpp
123456789101112#include <iostream> int main() { short age = 22; int likes = 143200; long population = 8200000000; std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Bemærk
Vær opmærksom på den datatype, du vælger. Hvis et types interval overskrides, vil C++-kompilatoren ikke advare dig, og du kan modtage en uventet værdi uden nogen fejlmeddelelse.
Flydende tal
Datatyperne ovenfor er designet til at gemme hele tal. Hvis vi forsøger at tildele 1.6
til en af dem, 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; }
Datatypen int
afkorter den decimale del af et tal. Denne opførsel er den samme for typerne short
og long
. For at gemme flydende kommatal (decimaltal) skal du bruge enten datatypen float
eller double
.
Datatype | ||
---|---|---|
float | ||
double |
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; }
Bemærk
Da
float
-typen kun har en præcision på syv cifre, er tallet 123.456789 allerede uden for dens rækkevidde. Dette kan føre til unøjagtige resultater (som vist i eksemplet nedenfor). Det er derfor bedre at brugedouble
som standard, medmindre du er sikker på, atfloat
's præcision er tilstrækkelig.
Det er selvfølgelig muligt at bruge float
eller double
til at gemme heltal, da disse er decimaltal med en decimaldel lig med 0. Som god praksis bør man dog anvende short
/int
/long
, hvis en variabel kun skal indeholde heltalsværdier (f.eks. befolkningstal eller antal likes).
Tak for dine kommentarer!