Kursusindhold
C++ Introduction
C++ Introduction
Numeriske Datatyper
Hele tal
Heltalsdatatyper er de mest almindeligt anvendte til hele tal. Datatypen int
kan holde værdier inden for 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; }
Det sker, fordi når du erklærer en int
-variabel, allokerer den præcis 4 bytes af din PC's hukommelse. Og tal over 2147483647
(eller under -2147483648
) passer ikke inden for de 4 bytes. Heldigvis er der andre datatyper tilgængelige, der kan allokere dig mere (eller mindre) plads til dine behov. Her er tabellen:
Datatype | ||
---|---|---|
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
Så du kan 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 vil overstige -32,768
til 32,767
intervallet (f.eks. lagring af en brugers alder). Brug af short
vil optage mindre hukommelsesplads.
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; }
Bemærk
Vær forsigtig med den datatype, du vælger. Hvis rækkevidden af en type overskrides, vil C++-kompilatoren ikke give dig besked, og du kan modtage en uventet værdi uden nogen indikation af en fejl.
Flydende punkt tal
Datatyperne ovenfor er designet til at gemme hele tal. Hvis vi forsøgte at tildele 1.6
til en af dem, her er hvad vi ville få:
main
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }
The int
type truncates the decimal part of a number. This behavior is the same for short
and long
types. To store floating-point (decimal) numbers, you should use either the float
or double
data type.
Datatype | ||
---|---|---|
float | ||
double |
Her er et eksempel på at bruge double
til at gemme 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; }
Bemærk
Da
float
-typen kun har en præcision på syv cifre, er tallet 123.456789 allerede uden for dets rækkevidde. Det kan føre til unøjagtige resultater (som vist i eksemplet nedenfor). Så det er bedre at brugedouble
som standard, medmindre du er sikker på, atfloat
's præcision er tilstrækkelig.
Selvfølgelig kan du bruge float
eller double
til at gemme hele tal, da disse er decimaltal med en decimaldel lig med 0. Men som en god praksis, hvis en variabel gemmer værdier, der kun kan være hele tal (f.eks. befolkning eller likes), bør short
/int
/long
bruges.
Tak for dine kommentarer!