Informatie over de verbeterde nauwkeurigheid van berekeningen in Pages, Numbers en Keynote

Na het bijwerken van Pages, Numbers en Keynote kan het zijn dat u kleine veranderingen merkt bij de resultaten van berekeningen in uw documenten. Dit komt doordat de laatste versie van iWork een update bevat voor de rekenengine, waardoor nog nauwkeurigere resultaten kunnen worden bereikt.

De meeste formules zullen geen zichtbare veranderingen tonen, maar berekeningen die resulteren in of gebruikmaken van extreem kleine getallen geven nu een nog nauwkeuriger resultaat.

Voorbeeld 1

In vorige versies van Numbers, Pages en Keynote zou een berekening zoals = 10,0 - 9,8 resulteren in een waarde van 0,199999999999999.

Door het aantal decimalen te wijzigen in de cel (tussen 1 en 14 decimale plaatsen) kan het probleem worden opgelost, waardoor het verwachte resultaat van 0,2 wordt getoond. Door het aantal weergegeven decimalen in de cel te verhogen, wordt 0,199999999999999000000000000000 weergegeven.

Dit gebeurt door de wijze waarop decimale getallen intern op binaire wijze worden bewaard. Binaire representaties van decimale getallen kunnen zeer kleine afwijkingen veroorzaken. De rekenengine in Pages, Numbers en Keynote heeft altijd geavanceerde technieken gebruikt om te voorkomen dat deze verschillen binnen berekeningen worden opgeteld, maar dit kan nog steeds gebeuren bij zeer grote nauwkeurigheden.

De nieuwe rekenengine is sterk verbeterd ten opzichte van vorige versies door een decimale representatie van getallen te gebruiken voor de hele berekening.

Hierdoor komt dezelfde berekening van = 10,0 - 9,8 nu uit bij een resultaat van 0,2. Door het aantal weergegeven decimalen te verhogen, wordt nu een waarde van 0,2000000000000000000000000000000 getoond.

Voorbeeld 2

In vorige versies van Numbers gaf de formule AFRONDEN(8,415;2) de waarde 8,41 als resultaat. Dit gebeurt ook vanwege de manier waarop waarden intern op binaire wijze worden bewaard.

Met de nieuwe rekenengine geeft de formule AFRONDEN(8,415;2) de waarde 8,42 als resultaat.

Informatie over BCD-codering (BInary Coded Decimal) tegenover DFP-codering (Decimal Floating Point)

De meeste computers slaan getallen op als een reeks van nullen en enen. Dit zijn binaire waarden. Een proces genaamd BCD-codering (Binary Coded Decimal) converteert breukgetallen naar hun binaire tegenhangers. Wanneer getallen worden gecodeerd met BCD, kunnen sommige waarden niet met volledige nauwkeurigheid worden weergegeven. Bijvoorbeeld, 0,2 in binaire vorm 0,001100110011... (herhaald). De waarde moet worden afgekapt om deze te coderen met BCD, waardoor de opgeslagen waarde ietwat wordt aangepast. Hoewel door BCD geïntroduceerde afwijkingen zeer klein zijn, vallen deze afwijkingen meer op wanneer ze worden versterkt door bepaalde typen berekeningsreeksen.

De nieuwste versies van Pages, Numbers en Keynote coderen getallen met 128 bits DFP-codering (Decimal Floating Point). Dit is een veel nauwkeurigere manier om decimale breuken te coderen waarbij afrondingsfouten worden voorkomen die kenmerkend zijn voor BCD-codering. Daarnaast werkt de bijgewerkte rekenengine rechtstreeks met getallen met DFP-codering. Hierdoor zijn waarden in tabelcellen nauwkeuriger en worden resultaten van formules nauwkeuriger berekend.

Veel formules zullen geen zichtbare veranderingen tonen, maar berekeningen die resulteren in of gebruik maken van extreem kleine getallen kunnen nu een nog nauwkeuriger resultaat geven.

Publicatiedatum: