Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Liukulukuarvojen Käsittely | Numeeriset tietotyypit
C++ Tietotyypit

bookLiukulukuarvojen Käsittely

Pyyhkäise näyttääksesi valikon

Luvut eivät rajoitu kokonaislukuihin. On olemassa myös liukulukuja. C++:ssa käytetään float- ja double-tietotyyppejä niiden tallentamiseen. Tässä luvussa käsitellään float-tietotyyppiä, kun taas seuraavassa käsitellään double-tietotyyppiä ja sen eroja. Alla on esimerkki float-tietotyypin käytöstä:

float.h

float.h

copy
1
float num = 0.45;

Katsotaan nopeasti, miten liukuluvut tallennetaan muistiin.
float-tietotyyppi vie muistista 4 tavua, aivan kuten int. Tällaisen luvun muuntaminen binäärimuotoon on kuitenkin huomattavasti monimutkaisempaa:

Tässä on esimerkki siitä, miten float num = 13.45 tallennettaisiin:

Ei haittaa, jos et täysin ymmärrä, mitä tässä tapahtuu. Tärkeintä on huomata, että float-tyypin esitys jakautuu kolmeen osaan:

  • Etumerkki-osa esitetään joko plus- (+) tai miinusmerkillä (-). Se ilmaisee, onko luku positiivinen vai negatiivinen;

  • Eksponentti-osa määrittää luvun esityksen laajuuden. Mitä suurempi eksponentti, sitä laajempi arvoalue voidaan esittää. float-tietotyypissä eksponentti vie 1 tavun (8 bittiä) muistia;

  • Mantissa-osa määrittää float-arvon tarkkuuden. Kaikkia lukuja ei voida esittää tarkasti muistissa, ja luvun tarkkuus määräytyy mantissan pituuden mukaan. float-tietotyypissä mantissan pituus on 23 bittiä.

Tämän seurauksena float-tyypillä on 7 desimaalin tarkkuus ja alue 1.2e-38 – 3.4e+38 (koskee sekä negatiivisia että positiivisia lukuja). Useimmiten alue ei ole ongelma, mutta tarkkuus voi joskus olla.

question mark

Mikä on suurin määrä desimaaleja, jonka float voi esittää tarkasti?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 2. Luku 4
some-alt