Kursinnhold
C++ Introduction
C++ Introduction
Numeriske Datatyper
Hele tall
Heltallsdatatyper er de mest brukte for hele tall. Datatypen int
kan holde verdier innenfor området -2,147,483,648
til 2,147,483,647
.
main
#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, tildeler den nøyaktig 4 byte av PC-ens minne. Og tall over 2147483647
(eller under -2147483648
) passer ikke innenfor de 4 bytene. Heldigvis er det andre datatyper tilgjengelige som kan gi deg mer (eller mindre) plass for dine behov. Her er tabellen:
Datatype | ||
---|---|---|
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
Så du kan bruke long
til å lagre store tall (f.eks. verdens befolkning). Du kan også bruke short
hvis du er sikker på at tallet ditt ikke vil overstige -32,768
til 32,767
området (f.eks. lagring av en brukers alder). Å bruke short
vil ta opp mindre minneplass.
main
#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 forsiktig med datatypen du velger. Hvis rekkevidden til en type overskrides, vil C++-kompilatoren ikke varsle deg, og du kan motta en uventet verdi uten noen indikasjon på en feil.
Flyttall
Datatypene ovenfor er designet for å lagre hele tall. Hvis vi prøvde å tilordne 1.6
til en av disse, her er hva vi ville fått:
main
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }
int
-typen avkorter desimaldelen av et tall. Denne oppførselen er den samme for short
og long
-typene. For å lagre flyttall (desimaltall), bør du bruke enten float
eller double
datatypen.
Datatype | ||
---|---|---|
float | ||
double |
Her er et eksempel på å bruke double
for å lagre 1.6
.
main
#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 bare har en presisjon på syv sifre, er tallet 123.456789 allerede utenfor rekkevidden. Det kan føre til unøyaktige resultater (som vist i eksemplet nedenfor). Så det er bedre å brukedouble
som standard med mindre du er sikker på atfloat
sin presisjon er tilstrekkelig.
Selvfølgelig kan du bruke float
eller double
til å lagre hele tall siden disse er desimaltall med en desimaldel lik 0. Men som en god praksis, hvis en variabel lagrer verdier som kun kan være hele tall (f.eks. befolkning eller likes), bør short
/int
/long
brukes.
Takk for tilbakemeldingene dine!