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++ Johdanto
course content

Kurssisisältö

C++ Johdanto

C++ Johdanto

1. Aloitetaan
2. Operaattoreiden Esittely
3. Muuttujat ja Tietotyypit
4. Ohjelmavirran Esittely
5. Johdanto Funktioihin

book
Numeeriset Tietotyypit

Kokonaisluvut

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

cpp

main

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 yli 2147483647 (tai alle -2147483648), eivät mahdu näihin 4 tavuun. Onneksi on olemassa muita tietotyyppejä, jotka voivat varata sinulle enemmän (tai vähemmän) tilaa tarpeidesi mukaan. Tässä on taulukko:

Tietotyyppi
Alue
Koko
short
-32,768 to 32,767
2 tavua
int
-2,147,483,648 to 2,147,483,647
4 tavua
long
-9223372036854775808 to 9223372036854775807
8 tavua

Voit siis käyttää long-tyyppiä suurten lukujen tallentamiseen (esim. maailman väkiluku). Voit myös käyttää short-tyyppiä, jos olet varma, että numerosi ei ylitä -32,768 - 32,767 aluetta (esim. käyttäjän iän tallentaminen). short-tyypin käyttäminen vie vähemmän muistia.

cpp

main

copy
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 varovainen valitessasi tietotyyppiä. Jos tyypin alue ylitetään, C++-kääntäjä ei ilmoita siitä, ja saatat saada odottamattoman arvon ilman virheilmoitusta.

Liukuluvut

Yllä olevat tietotyypit on suunniteltu tallentamaan kokonaislukuja. Jos yrittäisimme antaa arvon 1.6 jollekin niistä, tässä on mitä saisimme:

cpp

main

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 short- ja long-tyypeille. Tallentaaksesi liukulukuja (desimaalilukuja), sinun tulisi käyttää joko float- tai double-tietotyyppiä.

Tietotyyppi
Tarkkuus
Koko
float
7 desimaalinumeroa
4 tavua
double
15 desimaalinumeroa
8 tavua

Tässä on esimerkki double-tyypin käytöstä tallentamaan 1.6.

cpp

main

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; }

Huomio

Koska float-tyypillä on vain seitsemän numeron tarkkuus, numero 123.456789 on jo sen alueen ulkopuolella. Tämä voi johtaa epätarkkoihin tuloksiin (kuten alla olevassa esimerkissä on esitetty). Siksi on parempi käyttää oletuksena double, ellei ole varma, että float:n tarkkuus riittää.

On selvää, että voit käyttää float tai double tallentaaksesi kokonaislukuja, koska ne ovat desimaalilukuja, joiden desimaaliosa on 0. Kuitenkin hyvänä käytäntönä, jos muuttuja tallentaa arvoja, jotka voivat olla vain kokonaislukuja (esim. väestö tai tykkäykset), tulisi käyttää short/int/long.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand
ChatGPT

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

course content

Kurssisisältö

C++ Johdanto

C++ Johdanto

1. Aloitetaan
2. Operaattoreiden Esittely
3. Muuttujat ja Tietotyypit
4. Ohjelmavirran Esittely
5. Johdanto Funktioihin

book
Numeeriset Tietotyypit

Kokonaisluvut

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

cpp

main

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 yli 2147483647 (tai alle -2147483648), eivät mahdu näihin 4 tavuun. Onneksi on olemassa muita tietotyyppejä, jotka voivat varata sinulle enemmän (tai vähemmän) tilaa tarpeidesi mukaan. Tässä on taulukko:

Tietotyyppi
Alue
Koko
short
-32,768 to 32,767
2 tavua
int
-2,147,483,648 to 2,147,483,647
4 tavua
long
-9223372036854775808 to 9223372036854775807
8 tavua

Voit siis käyttää long-tyyppiä suurten lukujen tallentamiseen (esim. maailman väkiluku). Voit myös käyttää short-tyyppiä, jos olet varma, että numerosi ei ylitä -32,768 - 32,767 aluetta (esim. käyttäjän iän tallentaminen). short-tyypin käyttäminen vie vähemmän muistia.

cpp

main

copy
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 varovainen valitessasi tietotyyppiä. Jos tyypin alue ylitetään, C++-kääntäjä ei ilmoita siitä, ja saatat saada odottamattoman arvon ilman virheilmoitusta.

Liukuluvut

Yllä olevat tietotyypit on suunniteltu tallentamaan kokonaislukuja. Jos yrittäisimme antaa arvon 1.6 jollekin niistä, tässä on mitä saisimme:

cpp

main

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 short- ja long-tyypeille. Tallentaaksesi liukulukuja (desimaalilukuja), sinun tulisi käyttää joko float- tai double-tietotyyppiä.

Tietotyyppi
Tarkkuus
Koko
float
7 desimaalinumeroa
4 tavua
double
15 desimaalinumeroa
8 tavua

Tässä on esimerkki double-tyypin käytöstä tallentamaan 1.6.

cpp

main

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; }

Huomio

Koska float-tyypillä on vain seitsemän numeron tarkkuus, numero 123.456789 on jo sen alueen ulkopuolella. Tämä voi johtaa epätarkkoihin tuloksiin (kuten alla olevassa esimerkissä on esitetty). Siksi on parempi käyttää oletuksena double, ellei ole varma, että float:n tarkkuus riittää.

On selvää, että voit käyttää float tai double tallentaaksesi kokonaislukuja, koska ne ovat desimaalilukuja, joiden desimaaliosa on 0. Kuitenkin hyvänä käytäntönä, jos muuttuja tallentaa arvoja, jotka voivat olla vain kokonaislukuja (esim. väestö tai tykkäykset), tulisi käyttää short/int/long.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?
some-alt