Tablora

Tablora · Kirjasto

Tarkista 0.10 ja 0.20 tarkkoina desimaaleina

Tarkista desimaaliaritmetiikalla, että 0.10 plus 0.20 on täsmälleen 0.30, jolloin ilmoitettua summaa verrataan ilman liukulukujen näyttövirheitä.

Miksi 0.1 plus 0.2 voi näyttää väärältä

Monet ohjelmat tallentavat luvut binäärisinä liukulukuina, joissa luvuille 0.1 ja 0.2 ei ole tarkkaa esitystä. Kun ne lasketaan yhteen, tallennettu tulos on hiuksenhienosti yli 0.3; muotoilusta riippuen näet ehkä 0.30000000000000004 tai vertailun, jonka mukaan arvot eivät ole yhtä suuria. Täsmäytyksessä tällainen ilmiö näyttää erolta, jota ei todellisuudessa ole.

Summantarkistin välttää tämän. Se lukee jokaisen arvon desimaalimerkkijonona, skaalaa kaikki arvot samaan desimaalien määrään ja laskee ne yhteen kokonaislukuina, joten 0.10 ja 0.20 ovat yhteensä täsmälleen 0.30.

Rivien syöttäminen

Tulos arvoille 0.10 ja 0.20

Kun arvot ovat 0.10 ja 0.20 ja Odotettu summa on 0.30, Laskettu summa on 0.30, Erotus on 0.00 ja Summat täsmäävät näyttää Kyllä. Tuloksessa on kaksi desimaalia, koska se on suurin desimaalien määrä syötteiden ja odotetun summan joukossa.

Erotus on aina Laskettu summa miinus Odotettu summa, joten negatiivinen erotus tarkoittaa, että syötetyt rivit jäävät ilmoitetusta luvusta vajaiksi.

Arvojen valmistelu todellisesta taulukosta

Tiliotteesta kopioidut summat ovat harvoin kanonisessa muodossa. Aja sarake ensin yhtenäistämistyökalun läpi ja valitse asiakirjan käyttämät desimaali- ja ryhmittelyerottimet, ja kopioi sitten muunnetut arvot summantarkistimeen. Arvo, jonka yhtenäistämistyökalu jätti tarkistettavaksi, ei ole valmis summattavaksi; ratkaise se ennen kuin luotat summaan.

Summantarkistin laskee tarkasti sen, mitä syötät, eikä mitään muuta. Se ei muunna valuuttoja, ei sovella vero- tai pyöristyssääntöjä eikä kerro, onko jokainen tietue syötetty.

Syötteet, jotka tarkistin hylkää

Lähtötiedot

Yksi arvo kullakin rivillä
0.10 0.20
Odotettu summa
0.30

Tulokset

Laskettu summa
0.30
Erotus
0.00
Summat täsmäävät
Kyllä