Kurssisisältö
C++ Johdanto
C++ Johdanto
Numeeriset Tietotyypit
Kokonaisluvut
Kokonaislukutietotyypit ovat yleisimmin käytettyjä kokonaisluvuille. int
-tietotyyppi voi sisältää arvoja välillä -2,147,483,648
ja 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; }
Tämä johtuu siitä, että kun määrittelet int
-muuttujan, se varaa tarkalleen 4 tavua tietokoneesi muistista. Ja luvut, jotka ovat yli 2147483647
(tai alle -2147483648
), eivät mahdu näihin 4 tavuun. Onneksi on olemassa muita tietotyyppejä, jotka voivat varata sinulle enemmän (tai vähemmän) tilaa tarpeidesi mukaan. Tässä on taulukko:
Tietotyyppi | ||
---|---|---|
short | 2 tavua | |
int | 4 tavua | |
long | 8 tavua |
Voit siis käyttää long
-tyyppiä suurten lukujen tallentamiseen (esim. maailman väkiluku). Voit myös käyttää short
-tyyppiä, jos olet varma, että numerosi ei ylitä -32,768
- 32,767
aluetta (esim. käyttäjän iän tallentaminen). short
-tyypin käyttäminen vie vähemmän muistia.
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; }
Huomio
Ole varovainen valitessasi tietotyyppiä. Jos tyypin alue ylitetään, C++-kääntäjä ei ilmoita siitä, ja saatat saada odottamattoman arvon ilman virheilmoitusta.
Liukuluvut
Yllä olevat tietotyypit on suunniteltu tallentamaan kokonaislukuja. Jos yrittäisimme antaa arvon 1.6
jollekin niistä, tässä on mitä saisimme:
main
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }
int
-tyyppi katkaisee luvun desimaaliosan. Tämä käyttäytyminen on sama short
- ja long
-tyypeille. Tallentaaksesi liukulukuja (desimaalilukuja), sinun tulisi käyttää joko float
- tai double
-tietotyyppiä.
Tietotyyppi | ||
---|---|---|
float | ||
double |
Tässä on esimerkki double
-tyypin käytöstä tallentamaan 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; }
Huomio
Koska
float
-tyypillä on vain seitsemän numeron tarkkuus, numero 123.456789 on jo sen alueen ulkopuolella. Tämä voi johtaa epätarkkoihin tuloksiin (kuten alla olevassa esimerkissä on esitetty). Siksi on parempi käyttää oletuksenadouble
, ellei ole varma, ettäfloat
:n tarkkuus riittää.
On selvää, että voit käyttää float
tai double
tallentaaksesi kokonaislukuja, koska ne ovat desimaalilukuja, joiden desimaaliosa on 0. Kuitenkin hyvänä käytäntönä, jos muuttuja tallentaa arvoja, jotka voivat olla vain kokonaislukuja (esim. väestö tai tykkäykset), tulisi käyttää short
/int
/long
.
Kiitos palautteestasi!