Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Numeriske Datatyper | Variabler og Datatyper
C++ Introduction

bookNumeriske 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

main.cpp

copy
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
Interval
Størrelse
short
-32,768 to 32,767
2 bytes
int
-2,147,483,648 to 2,147,483,647
4 bytes
long
-9223372036854775808 to 9223372036854775807
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

main.cpp

copy
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

main.cpp

copy
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
Præcision
Størrelse
float
7 decimaler
4 bytes
double
15 decimaler
8 bytes

Her er et eksempel på brug af double til at gemme 1.6.

main.cpp

main.cpp

copy
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 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 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).

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

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

bookNumeriske 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

main.cpp

copy
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
Interval
Størrelse
short
-32,768 to 32,767
2 bytes
int
-2,147,483,648 to 2,147,483,647
4 bytes
long
-9223372036854775808 to 9223372036854775807
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

main.cpp

copy
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

main.cpp

copy
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
Præcision
Størrelse
float
7 decimaler
4 bytes
double
15 decimaler
8 bytes

Her er et eksempel på brug af double til at gemme 1.6.

main.cpp

main.cpp

copy
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 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 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).

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
some-alt