Numeeriset Tietotyypit
Kokonaisluvut
Kokonaislukutietotyypit ovat yleisimmin käytettyjä kokonaisluvuille. int
-tietotyyppi voi sisältää arvoja välillä -2,147,483,648
– 2,147,483,647
.
main.cpp
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; }
Tämä johtuu siitä, että kun määrittelet int
-muuttujan, se varaa tarkalleen 4 tavua tietokoneesi muistista. Ja luvut, jotka ovat suurempia kuin 2147483647
(tai pienempiä kuin -2147483648
), eivät mahdu näihin 4 tavuun. Onneksi käytettävissä on myös muita tietotyyppejä, jotka voivat varata enemmän (tai vähemmän) tilaa tarpeidesi mukaan. Tässä on taulukko:
Tietotyyppi | ||
---|---|---|
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
long
soveltuu suurten lukujen tallentamiseen (esim. maailman väkiluku). short
voidaan käyttää, jos tiedetään, että luku ei ylitä arvoaluetta -32,768
–32,767
(esim. käyttäjän iän tallentaminen). short
vie vähemmän muistia.
main.cpp
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; }
Huomio
Ole tarkkana valitessasi tietotyyppiä. Jos tyypin sallittu arvoalue ylitetään, C++-kääntäjä ei ilmoita siitä, ja saatat saada odottamattoman arvon ilman virheilmoitusta.
Liukuluvut
Yllä mainitut tietotyypit on suunniteltu kokonaislukujen tallentamiseen. Jos yrittäisimme asettaa arvon 1.6
johonkin näistä, saisimme seuraavan tuloksen:
main.cpp
12345678#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 myös short
- ja long
-tyypeille. Jos haluat tallentaa liukulukuja (desimaalilukuja), sinun tulee käyttää joko float
- tai double
-tietotyyppiä.
Tietotyyppi | ||
---|---|---|
float | ||
double |
Tässä on esimerkki, jossa käytetään double
-tyyppiä luvun 1.6
tallentamiseen.
main.cpp
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; }
Huomio
Koska
float
-tyypin tarkkuus on vain seitsemän numeroa, luku 123.456789 ylittää jo sen tarkkuuden. Tämä voi johtaa epätarkkoihin tuloksiin (kuten alla olevassa esimerkissä). Siksi on suositeltavaa käyttää oletuksenadouble
-tyyppiä, ellei ole varma, ettäfloat
-tarkkuus riittää.
On mahdollista käyttää float
- tai double
-tyyppiä kokonaislukujen tallentamiseen, koska ne ovat desimaalilukuja, joiden desimaaliosa on 0. Hyvänä käytäntönä kuitenkin, jos muuttujaan tallennetaan vain kokonaislukuja (esim. väkiluku tai tykkäykset), tulisi käyttää short
/int
/long
-tyyppejä.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.85
Numeeriset Tietotyypit
Pyyhkäise näyttääksesi valikon
Kokonaisluvut
Kokonaislukutietotyypit ovat yleisimmin käytettyjä kokonaisluvuille. int
-tietotyyppi voi sisältää arvoja välillä -2,147,483,648
– 2,147,483,647
.
main.cpp
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; }
Tämä johtuu siitä, että kun määrittelet int
-muuttujan, se varaa tarkalleen 4 tavua tietokoneesi muistista. Ja luvut, jotka ovat suurempia kuin 2147483647
(tai pienempiä kuin -2147483648
), eivät mahdu näihin 4 tavuun. Onneksi käytettävissä on myös muita tietotyyppejä, jotka voivat varata enemmän (tai vähemmän) tilaa tarpeidesi mukaan. Tässä on taulukko:
Tietotyyppi | ||
---|---|---|
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
long
soveltuu suurten lukujen tallentamiseen (esim. maailman väkiluku). short
voidaan käyttää, jos tiedetään, että luku ei ylitä arvoaluetta -32,768
–32,767
(esim. käyttäjän iän tallentaminen). short
vie vähemmän muistia.
main.cpp
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; }
Huomio
Ole tarkkana valitessasi tietotyyppiä. Jos tyypin sallittu arvoalue ylitetään, C++-kääntäjä ei ilmoita siitä, ja saatat saada odottamattoman arvon ilman virheilmoitusta.
Liukuluvut
Yllä mainitut tietotyypit on suunniteltu kokonaislukujen tallentamiseen. Jos yrittäisimme asettaa arvon 1.6
johonkin näistä, saisimme seuraavan tuloksen:
main.cpp
12345678#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 myös short
- ja long
-tyypeille. Jos haluat tallentaa liukulukuja (desimaalilukuja), sinun tulee käyttää joko float
- tai double
-tietotyyppiä.
Tietotyyppi | ||
---|---|---|
float | ||
double |
Tässä on esimerkki, jossa käytetään double
-tyyppiä luvun 1.6
tallentamiseen.
main.cpp
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; }
Huomio
Koska
float
-tyypin tarkkuus on vain seitsemän numeroa, luku 123.456789 ylittää jo sen tarkkuuden. Tämä voi johtaa epätarkkoihin tuloksiin (kuten alla olevassa esimerkissä). Siksi on suositeltavaa käyttää oletuksenadouble
-tyyppiä, ellei ole varma, ettäfloat
-tarkkuus riittää.
On mahdollista käyttää float
- tai double
-tyyppiä kokonaislukujen tallentamiseen, koska ne ovat desimaalilukuja, joiden desimaaliosa on 0. Hyvänä käytäntönä kuitenkin, jos muuttujaan tallennetaan vain kokonaislukuja (esim. väkiluku tai tykkäykset), tulisi käyttää short
/int
/long
-tyyppejä.
Kiitos palautteestasi!