Juu, elikkäs näin tunnetusti tietokoneissa talletetaan luvut binäärijärjestelmässä, eli jonkin volttirajan alapuolella yhden binäärinumeron arvo on 0 ja jonkin volttirajan yläpuolella 1. Eli esimerkiksi luku 1101 on sellainen, että jokaisella noista ykkösistä on oma jännitteensä (tai magneettikentän varaus jos kyseessä olisi esimerkiksi vanha kiintolevy, yms.) ja tuo yksi nolla olisi sitten jokin huomattavasti alhaisempi arvo.
Floatit, tai näin oikeasti suomeksi liukuluvut, ovat eräs tapa tallettaa desimaalilukuja tietokoneilla joka vastaa “tieteellistä merkintätapaa” luvuilla. Eli siinä missä sulla saattaa olla vaikka 1.58 * 10^9, liukuluvut ovat sama idea, paitsi että ne ovat kaksikantaisia, eli tyyliin 1.10110 * 2^-2. Ongelma floateissa varsinkin rahan kanssa on se, että niissä tulee herkästi pyöristysvirheitä. Esimerkiksi tässä ALV:n kohdalla, tuo uusi arvo olisi tarkasti ottaeon 0.255, se kun on kuitenkin 25.5%. Mutta koska tietokoneilla on vain rajattu määrä bittejä käytettävissä näiden lukujen esittämiseen, niin se arvo on oikeasti enemmän tyyliin 0.25499999523162841796875. Tämä saattaa johtaa pyöristysvirheisiin, kun tätä aritmetiikkaa tehdään, joka taas saattaa esimerkiksi vaikuttaa tuotteen hintaan, vaikkakin tässä tapauksessa ongelma olisi varmaankin aika pieni.
Tämän takia ihmisille yritetään kertoa, että liukulukuja ei saa koskaan käyttää rahan kanssa, vaan että se voidaan esimerkiksi tallentaa tietokoneelle esimerkiksi sentin sadasosan tarkkuudella tai vastaavasti. On olemassa myös muita esityksiä murtoluvuille, kuten se, että talletetaan osoittaja ja nimittäjä kahtena kokonaislukuna ja tehdään aritmetiikka sen mukaan. Mutta floateissa on se, että suurimmassa osassa ohjelmointikieliä niiden käyttö on helppoa ja ne ovat suhteellisen muistitehokkaita ja nopeita, jonka takia niitä käytetään esimerkiksi fysiikassa jossa pieni heitto tyyliin kymmenen desimaalin jälkeen ole enää mitenkään merkittävää.
Juu, elikkäs näin tunnetusti tietokoneissa talletetaan luvut binäärijärjestelmässä, eli jonkin volttirajan alapuolella yhden binäärinumeron arvo on 0 ja jonkin volttirajan yläpuolella 1. Eli esimerkiksi luku
1101
on sellainen, että jokaisella noista ykkösistä on oma jännitteensä (tai magneettikentän varaus jos kyseessä olisi esimerkiksi vanha kiintolevy, yms.) ja tuo yksi nolla olisi sitten jokin huomattavasti alhaisempi arvo.Floatit, tai näin oikeasti suomeksi liukuluvut, ovat eräs tapa tallettaa desimaalilukuja tietokoneilla joka vastaa “tieteellistä merkintätapaa” luvuilla. Eli siinä missä sulla saattaa olla vaikka
1.58 * 10^9
, liukuluvut ovat sama idea, paitsi että ne ovat kaksikantaisia, eli tyyliin1.10110 * 2^-2
. Ongelma floateissa varsinkin rahan kanssa on se, että niissä tulee herkästi pyöristysvirheitä. Esimerkiksi tässä ALV:n kohdalla, tuo uusi arvo olisi tarkasti ottaeon0.255
, se kun on kuitenkin 25.5%. Mutta koska tietokoneilla on vain rajattu määrä bittejä käytettävissä näiden lukujen esittämiseen, niin se arvo on oikeasti enemmän tyyliin0.25499999523162841796875
. Tämä saattaa johtaa pyöristysvirheisiin, kun tätä aritmetiikkaa tehdään, joka taas saattaa esimerkiksi vaikuttaa tuotteen hintaan, vaikkakin tässä tapauksessa ongelma olisi varmaankin aika pieni.Tämän takia ihmisille yritetään kertoa, että liukulukuja ei saa koskaan käyttää rahan kanssa, vaan että se voidaan esimerkiksi tallentaa tietokoneelle esimerkiksi sentin sadasosan tarkkuudella tai vastaavasti. On olemassa myös muita esityksiä murtoluvuille, kuten se, että talletetaan osoittaja ja nimittäjä kahtena kokonaislukuna ja tehdään aritmetiikka sen mukaan. Mutta floateissa on se, että suurimmassa osassa ohjelmointikieliä niiden käyttö on helppoa ja ne ovat suhteellisen muistitehokkaita ja nopeita, jonka takia niitä käytetään esimerkiksi fysiikassa jossa pieni heitto tyyliin kymmenen desimaalin jälkeen ole enää mitenkään merkittävää.