Tietoja Pagesin, Numbersin ja Keynoten laskutoimitusten parannetusta tarkkuudesta

Kun olet päivittänyt Pagesin, Numbersin ja Keynoten, saatat huomata pieniä muutoksia dokumenttien sisältämien laskelmien tuloksissa. Tämä johtuu siitä, että iWorkin uusin versio sisältää laskentatoimintojen päivityksen, jonka ansiosta tulokset ovat vielä entistäkin tarkempia.

Useimmissa kaavoissa ei ole näkyviä eroja, mutta laskutoimitukset, joiden tuloksena on tai joissa käytetään äärimmäisen pieniä lukuja, saattavat nyt näyttää entistäkin tarkemman tuloksen.

Esimerkki 1

Numbersin, Pagesin ja Keynoten aiemmissa versioissa esimerkiksi laskutoimituksen = 10,0 – 9,8 tuloksena on arvo 0,199999999999999.

Solussa näytettävien desimaalien määrän (1–14 desimaalia) muuttaminen voi korjata ongelman siten, että tuloksena näkyy odotetusti 0,2. Solussa näytettävien desimaalien määrän lisääminen näyttää tuloksena 0,199999999999999000000000000000.

Tämä johtuu tavasta, jolla binäärijärjestelmä tallentaa desimaaliluvut sisäisesti. Desimaalilukujen binäärikuvaukset voivat aiheuttaa erittäin pieniä poikkeamia. Pagesin, Numbersin ja Keynoten laskentatoiminnot ovat aina käyttäneet edistyneitä tekniikoita estääkseen näiden erojen keräytymisen laskutoimituksissa, mutta erot voivat olla huomattavissa erittäin suurta tarkkuutta käytettäessä.

Aiempiin versioihin nähden uudet laskentatoiminnot ovat huomattava parannus, koska niissä käytetään numeroiden desimaalimuotoja koko laskutoimituksen ajan.

Tämän seurauksena saman laskutoimituksen = 10,0 – 9,8 tuloksena on nyt arvo 0,2. Näytettävien desimaalien määrän lisääminen näyttää nyt arvon 0,2000000000000000000000000000000.

Esimerkki 2

Numbersin aiemmissa versioissa kaava PYÖRISTÄ(8,415; 2) antaa tulokseksi 8,41. Myös tämä johtuu tavasta, jolla arvot on tallennettu sisäisesti binääriin.

Uusia laskentatoimintoja käytettäessä PYÖRISTÄ(8,415; 2) antaa tulokseksi 8,42.

Tietoja binäärikoodattujen desimaalien ja liukulukudesimaalien koodauksen eroista

Useimmat tietokoneet tallentavat numerot nollien ja ykkösten sarjoina, jotka ovat binääriarvoja. Binäärikoodattujen desimaalien (BCD) koodausprosessissa murtoluvut muunnetaan niiden binäärisiksi vastineiksi. Kun numeroiden koodauksessa käytetään BCD-prosessia, joitakin arvoja ei voida esittää täydellisellä tarkkuudella. Esimerkiksi 0,2 on binäärimuodossa 0,001100110011... (toistuva). Arvoa pitää typistää, jotta se voidaan koodata BCD:n avulla, mikä muuttaa tallennettua arvoa hieman. Vaikka BCD:n aiheuttamat poikkeamat voivat olla erittäin pieniä, poikkeamista tulee huomattavampia, kun ne kertautuvat tiettyjen laskentaketjujen kautta.

Pagesin, Numbersin ja Keynoten uusimmat versiot käyttävät numeroiden koodaamisessa 128-bittistä liukulukudesimaalien (DFP) koodausmenetelmää. Tämä on paljon tarkempi tapa koodata desimaaliosia, koska se välttää BCD-koodaukselle tyypilliset pyöristysvirheet. Lisäksi päivitetyt laskentatoiminnot toimivat suoraan DFP-koodattujen numeroiden kanssa, jolloin taulukon solujen arvot tallennetaan ja kaavojen tulokset lasketaan aiempaa tarkemmin.

Useissa kaavoissa ei ole näkyviä eroja, mutta laskutoimitukset, joiden tuloksena on tai joissa käytetään äärimmäisen pieniä lukuja, saattavat nyt näyttää entistäkin tarkemman tuloksen.

Julkaisupäivämäärä: