Om de mer nøyaktige beregningene i Pages, Numbers og Keynote

Etter at du har oppdatert Pages, Numbers og Keynote, vil du kanskje legge merke til mindre endringer i resultatene av beregningene i dokumentene. Dette er fordi den nyeste versjonen av iWork inneholder en oppdatering av beregningsmotoren, som produserer enda mer nøyaktige resultater enn før.

De fleste formler vil ikke vise noen synlig forskjell, men beregninger som resulterer i eller bruker ekstremt små tall, kan nå vise enda mer nøyaktige svar.

Eksempel 1

I tidligere versjoner av Numbers, Pages og Keynote vil en beregning som for eksempel = 10,0 – 9,8 resultere i en verdi på 0,199999999999999.

Ved å endre antall desimaler som vises i cellen (mellom 1 og 14 desimalplasser), kan du løse problemet for å vise det forventede resultatet 0,2. Hvis du øker antallet desimaler som vises i cellevisningene, ser du 0,199999999999999000000000000000.

Dette skjer på grunn av måten binær form lagrer desimaltall internt på. Binære representasjoner av desimaltall kan forårsake veldig små avvik. Beregningsmotoren i Pages, Numbers og Keynote har alltid brukt sofistikerte teknikker for å hindre at disse avvikene bygger seg opp i beregninger, men ved svært høye presisjonsnivåer kan forskjellene gjøre seg gjeldende.

Den nye beregningsmotoren forbedrer tidligere versjoner drastisk ved å bruke en desimalrepresentasjon av tall gjennom hele beregningen.

Resultatet er at den samme beregningen = 10,0 – 9,8 nå resulterer i en verdi på 0,2. En økning av antallet viste desimaler viser nå en verdi på 0,2000000000000000000000000000000.

Eksempel 2

I tidligere versjoner av Numbers returnerer formelen AVRUND(8,415; 2) 8,41. Dette skjer også på grunn av måten verdier lagres internt på i binær form.

Med den nye beregningsmotoren returnerer AVRUND(8,415; 2) 8,42.

Om binært kodede desimaler kontra koding med flytepunkt for desimaler

De fleste datamaskiner lagrer tall som en serie med nulltall og ettall, som kalles binære verdier. En prosess som kalles koding av binært kodede desimaler (BCD), konverterer brøker til de binære motstykkene for disse. Når tall kodes ved hjelp av BCD, er det noen verdier som ikke kan representeres helt nøyaktig. For eksempel er 0,2 i binær form 0,001100110011 … (repeterende). Verdien må trunkeres for at den skal kunne kodes med BCD, noe som endrer den lagrede verdien noe. Selv om avvik som forårsakes av BCD, kan være veldig små, blir disse avvikene tydeligere når de forsterkes gjennom enkelte typer beregningskjeder.

De nyeste versjonene av Pages, Numbers og Keynote koder tall ved hjelp av 128-biters koding med flytepunkt for desimaler (DFP). Dette er en mye mer nøyaktig måte å kode desimalbrøker på som unngår typiske avrundingsfeil ved BCD-koding. I tillegg opererer den oppdaterte beregningsmotoren direkte med tall som er kodet med DFP – verdier i tabellceller lagres mer nøyaktig, og formelresultater behandles mer nøyaktig.

Mange formler vil ikke vise noen synlig forskjell, men beregninger som resulterer i eller bruker ekstremt små tall, kan nå vise enda mer nøyaktige svar.

Publiseringsdato: