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 tall

Heltallsdatatyper er de mest brukte for hele tall. Datatypen int kan lagre verdier innenfor området -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 skjer fordi når du erklærer en int-variabel, reserveres det nøyaktig 4 byte av PC-ens minne. Tall over 2147483647 (eller under -2147483648) får ikke plass i disse 4 bytene. Heldigvis finnes det andre datatyper som kan reservere mer (eller mindre) plass etter behov. Her er tabellen:

Datatyp
Område
Størrelse
short
-32,768 til 32,767
2 byte
int
-2,147,483,648 til 2,147,483,647
4 byte
long
-9223372036854775808 til 9223372036854775807
8 byte

Derfor kan long brukes til å lagre store tall (for eksempel verdens befolkning). short kan også benyttes dersom det er sikkert at tallet ikke vil overstige området -32,768 til 32,767 (for eksempel lagring av en brukers alder). Bruk av short vil kreve mindre minneplass.

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; }

Merk

Vær oppmerksom på datatypen du velger. Hvis rekkevidden til en type overskrides, vil C++-kompilatoren ikke varsle deg, og du kan få en uventet verdi uten noen indikasjon på feil.

Flyttall

Datatypene ovenfor er laget for å lagre heltall. Hvis vi prøver å tilordne 1.6 til en av disse, 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 avkorter desimaldelen av et tall. Denne oppførselen er den samme for typene short og long. For å lagre flyttall (desimaltall), bør du bruke enten datatypen float eller double.

Data Type
Precision
Size
float
7 decimal digits
4 bytes
double
15 decimal digits
8 bytes

Her er et eksempel på bruk av double for å lagre 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; }

Merk

Siden float-typen kun har en presisjon på syv sifre, er tallet 123.456789 allerede utenfor dens område. Dette kan føre til unøyaktige resultater (som vist i eksempelet nedenfor). Det er derfor bedre å bruke double som standard, med mindre du er sikker på at presisjonen til float er tilstrekkelig.

Det er selvsagt mulig å bruke float eller double til å lagre heltall, siden dette er desimaltall med desimaldel lik 0. Likevel, som en god praksis, bør short/int/long brukes dersom en variabel kun skal lagre verdier som er heltall (for eksempel befolkning eller antall likerklikk).

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

Sveip for å vise menyen

Hele tall

Heltallsdatatyper er de mest brukte for hele tall. Datatypen int kan lagre verdier innenfor området -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 skjer fordi når du erklærer en int-variabel, reserveres det nøyaktig 4 byte av PC-ens minne. Tall over 2147483647 (eller under -2147483648) får ikke plass i disse 4 bytene. Heldigvis finnes det andre datatyper som kan reservere mer (eller mindre) plass etter behov. Her er tabellen:

Datatyp
Område
Størrelse
short
-32,768 til 32,767
2 byte
int
-2,147,483,648 til 2,147,483,647
4 byte
long
-9223372036854775808 til 9223372036854775807
8 byte

Derfor kan long brukes til å lagre store tall (for eksempel verdens befolkning). short kan også benyttes dersom det er sikkert at tallet ikke vil overstige området -32,768 til 32,767 (for eksempel lagring av en brukers alder). Bruk av short vil kreve mindre minneplass.

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; }

Merk

Vær oppmerksom på datatypen du velger. Hvis rekkevidden til en type overskrides, vil C++-kompilatoren ikke varsle deg, og du kan få en uventet verdi uten noen indikasjon på feil.

Flyttall

Datatypene ovenfor er laget for å lagre heltall. Hvis vi prøver å tilordne 1.6 til en av disse, 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 avkorter desimaldelen av et tall. Denne oppførselen er den samme for typene short og long. For å lagre flyttall (desimaltall), bør du bruke enten datatypen float eller double.

Data Type
Precision
Size
float
7 decimal digits
4 bytes
double
15 decimal digits
8 bytes

Her er et eksempel på bruk av double for å lagre 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; }

Merk

Siden float-typen kun har en presisjon på syv sifre, er tallet 123.456789 allerede utenfor dens område. Dette kan føre til unøyaktige resultater (som vist i eksempelet nedenfor). Det er derfor bedre å bruke double som standard, med mindre du er sikker på at presisjonen til float er tilstrekkelig.

Det er selvsagt mulig å bruke float eller double til å lagre heltall, siden dette er desimaltall med desimaldel lik 0. Likevel, som en god praksis, bør short/int/long brukes dersom en variabel kun skal lagre verdier som er heltall (for eksempel befolkning eller antall likerklikk).

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3
some-alt