Kursinnehåll
Introduktion till C++
Introduktion till C++
Numeriska Datatyper
Heltal
Heltalsdatatyper är de mest använda för heltal. Datatypen int
kan hålla värden inom intervallet -2,147,483,648
till 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 händer eftersom när du deklarerar en int
-variabel, allokerar den exakt 4 byte av din dators minne. Och tal över 2147483647
(eller under -2147483648
) får inte plats inom dessa 4 byte. Lyckligtvis finns det andra datatyper tillgängliga som kan allokera mer (eller mindre) utrymme för dina behov. Här är tabellen:
Data Type | ||
---|---|---|
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
Så du kan använda long
för att lagra stora tal (t.ex. världens befolkning). Du kan också använda short
om du är säker på att ditt tal inte kommer att överstiga -32,768
till 32,767
intervallet (t.ex. lagra en användares ålder). Att använda short
kommer att ta upp mindre minnesutrymme.
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; }
Notera
Var försiktig med den datatyp du väljer. Om intervallet för en typ överskrids, kommer C++-kompilatorn inte att meddela dig, och du kan få ett oväntat värde utan någon indikation på ett fel.
Flyttal
Datatyperna ovan är utformade för att lagra heltal. Om vi försökte tilldela 1.6
till en av dessa, här är vad vi skulle få:
main
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }
Typen int
trunkerar den decimala delen av ett tal. Detta beteende är detsamma för typerna short
och long
. För att lagra flyttal (decimaltal) bör du använda antingen datatypen float
eller double
.
Datatyp | ||
---|---|---|
float | ||
double |
Här är ett exempel på att använda double
för att lagra 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; }
Notera
Eftersom typen
float
endast har en precision på sju siffror, är numret 123.456789 redan utanför dess räckvidd. Det kan leda till felaktiga resultat (som visas i exemplet nedan). Så det är bättre att användadouble
som standard om du inte är säker på attfloat
's precision är tillräcklig.
Självklart kan du använda float
eller double
för att lagra heltal eftersom dessa är decimaltal med en decimaldel lika med 0. Men som en god praxis, om en variabel lagrar värden som endast kan vara heltal (t.ex. befolkning eller likes), bör short
/int
/long
användas.
Tack för dina kommentarer!