Om den ökade noggrannheten i beräkningar i Pages, Numbers och Keynote

När du har uppdaterat Pages, Numbers och Keynote kan du lägga märke till mindre ändringar i summor av beräkningar i dina dokument. Det beror på att beräkningsmotorn i den senaste versionen av iWork har uppdaterats, vilket gör att resultaten blir ännu mer noggranna än tidigare.

De flesta formler kommer inte resultera i någon synbar skillnad men beräkningar som resulterar i eller bygger på extremt små värden kan nu ge ett ännu mer exakt svar.

Exempel 1

I tidigare versioner av Numbers, Pages och Keynote resulterade en beräkning som = 10,0 - 9,8 i värdet 0,199999999999999.

Du kan avhjälpa problemet så att det förväntade resultatet 0.2 visas, genom att ändra antalet decimaler som visas i en cell (mellan 1 och 14 decimaler). Ökar du antalet decimaler i en cell visas 0,199999999999999000000000000000.

Detta beror på hur decimaltal lagras binärt i internminnet. Binära representationer av decimaltal kan medföra mycket små avvikelser. Beräkningsmotorn i Pages, Numbers och Keynote har alltid använt sofistikerade tekniker för att hindra dessa avvikelser från att summeras i beräkningar, men vid mycket höga precisioner kan avvikelserna bli synliga.

Den nya beräkningsmotorn är dramatiskt förbättrad jämfört med tidigare genom att den använder decimala representationer av värden genom beräkningen.

Resultatet är att samma beräkning = 10,0 - 9,8 nu har värdet 0.2. Öknar du antalet decimaler i en cell visas nu värdet 0,2000000000000000000000000000000.

Exempel 2

I tidigare versioner av Numbers visade formeln AVRUNDA(8,415;2) värdet 8,41. Även detta beror på sättet som värden internt sparas binärt.

Med den nya beräkningsmotorn så resulterar AVRUNDA(8,415;2) i värdet 8,42.

Om binärt kodad decimal jämfört med flyttalskodad decimal

De flesta datorer sparar siffror som en serie nollor och ettor som är binära värden. En process kallad binärt kodad decimal (BCD) konverterar decimaltal till de binära motsvarigheterna. När siffror kodas med BCD så kan vissa värden inte representeras exakt. Till exempel motsvaras värdet 0,2 i binär form av 0,001100110011... (upprepas). Värdet måste kortas av för att kunna koda det med BCD, vilket förändrar det lagrade värdet något. Även om avvikelserna som blir följden av BCD är mycket små, kan avvikelserna bli tydligare när de förstärks genom vissa typer av beräkningskedjor.

De senaste versionerna av Pages, Numbers och Keynote använder 128-bitars flyttalskodad decimal (DFP). Detta är ett mycket mer exakt sätt att koda decimaltal och som förhindrar avrundningsfelen som är typiska för BCD-kodning. Dessutom fungerar den uppdaterade beräkningsmotorn direkt med siffror som kodats med DFP. Värden i tabellceller lagras mer exakt och resultat av formler beräknas mer exakt.

Många formler kommer inte resultera i någon synbar skillnad men beräkningar som resulterar i eller bygger på extremt små värden kan nu ge ett ännu mer exakt svar.

Publiceringsdatum: