Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Numeeriset Tietotyypit | Muuttujat ja Tietotyypit
C++-Esittely

bookNumeeriset Tietotyypit

Kokonaisluvut

Kokonaislukutietotyypit ovat yleisimmin käytettyjä kokonaisluvuille. int-tietotyyppi voi sisältää arvoja välillä -2,147,483,6482,147,483,647.

main.cpp

main.cpp

copy
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,76832,767-väliä (esim. käyttäjän iän tallentaminen). short vie vähemmän muistia.

main.cpp

main.cpp

copy
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; }
Note
Huomio

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

main.cpp

copy
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

main.cpp

copy
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; }
Note
Huomio

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ä.

question mark

Mitä tapahtuu, jos yrität asettaa int-muuttujaan luvun, joka on suurempi kuin 2,147,483,647?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 3.85

bookNumeeriset 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,6482,147,483,647.

main.cpp

main.cpp

copy
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,76832,767-väliä (esim. käyttäjän iän tallentaminen). short vie vähemmän muistia.

main.cpp

main.cpp

copy
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; }
Note
Huomio

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

main.cpp

copy
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

main.cpp

copy
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; }
Note
Huomio

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ä.

question mark

Mitä tapahtuu, jos yrität asettaa int-muuttujaan luvun, joka on suurempi kuin 2,147,483,647?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
some-alt