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:
Voit käyttää long-tyyppiä suurten lukujen tallentamiseen (esim. maailman väkiluku). Voit myös käyttää short-tyyppiä, jos olet varma, että lukusi ei ylitä -32,768–32,767-väliä (esim. käyttäjän iän tallentaminen). short vie vähemmän muistia.
main.cpp
12345678910111213#include <iostream> int main() { short age = 22; // for small numbers int likes = 143200; // for larger numbers long population = 8200000000; // for very large numbers // Display the values std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Ole tarkkana valitessasi tietotyyppiä. Jos tyypin sallittu arvoalue ylittyy, C++-kääntäjä ei ilmoita siitä, ja saatat saada odottamattoman arvon ilman virheilmoitusta.
Liukuluvut
Yllä mainitut tietotyypit on tarkoitettu 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. Liukulukujen (desimaalilukujen) tallentamiseen tulee käyttää joko float- tai double-tietotyyppiä.
Tässä on esimerkki, jossa käytetään double-tyyppiä tallentamaan arvon 1.6.
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; }
Koska float-tyypin tarkkuus on vain seitsemän numeroa, luku 123.456789 ylittää jo sen rajan. Tämä voi johtaa epätarkkoihin tuloksiin (kuten alla olevassa esimerkissä). Siksi on suositeltavaa käyttää oletuksena double-tyyppiä, ellei ole varmuutta, että float-tarkkuus riittää.
Voit toki 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:
Voit käyttää long-tyyppiä suurten lukujen tallentamiseen (esim. maailman väkiluku). Voit myös käyttää short-tyyppiä, jos olet varma, että lukusi ei ylitä -32,768–32,767-väliä (esim. käyttäjän iän tallentaminen). short vie vähemmän muistia.
main.cpp
12345678910111213#include <iostream> int main() { short age = 22; // for small numbers int likes = 143200; // for larger numbers long population = 8200000000; // for very large numbers // Display the values std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Ole tarkkana valitessasi tietotyyppiä. Jos tyypin sallittu arvoalue ylittyy, C++-kääntäjä ei ilmoita siitä, ja saatat saada odottamattoman arvon ilman virheilmoitusta.
Liukuluvut
Yllä mainitut tietotyypit on tarkoitettu 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. Liukulukujen (desimaalilukujen) tallentamiseen tulee käyttää joko float- tai double-tietotyyppiä.
Tässä on esimerkki, jossa käytetään double-tyyppiä tallentamaan arvon 1.6.
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; }
Koska float-tyypin tarkkuus on vain seitsemän numeroa, luku 123.456789 ylittää jo sen rajan. Tämä voi johtaa epätarkkoihin tuloksiin (kuten alla olevassa esimerkissä). Siksi on suositeltavaa käyttää oletuksena double-tyyppiä, ellei ole varmuutta, että float-tarkkuus riittää.
Voit toki 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!