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

Suggested prompts:

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

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