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
Can you explain the difference between float and double in more detail?
When should I use short, int, or long for whole numbers?
Are there any other numeric data types I should know about?
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!