Informazioni sulla maggiore precisione dei calcoli in Pages, Numbers e Keynote

Dopo aver aggiornato Pages, Numbers e Keynote, potresti notare piccoli cambiamenti nei risultati dei calcoli nei tuoi documenti. Questo avviene perché l'ultima versione di iWork include un aggiornamento del motore di calcolo, che produce risultati ancora più precisi.

Nella maggior parte delle formule non vi sarà alcuna differenza visibile, ma i calcoli che generano o utilizzano numeri estremamente piccoli possono ora restituire una risposta ancora più precisa.

Esempio 1

Nelle versioni precedenti di Numbers, Pages e Keynote, un calcolo come = 10,0 - 9,8 restituisce un valore di 0,199999999999999.

Modificando il numero di cifre decimali visualizzate nella cella (tra 1 e 14) si può risolvere il problema e visualizzare il risultato previsto, cioè 0,2. Aumentando il numero di decimali visualizzati nella cella, viene mostrato 0,199999999999999000000000000000.

Questo comportamento è dovuto alle modalità interne di memorizzazione dei numeri decimali in formato binario. Le rappresentazioni binarie dei numeri decimali possono creare piccolissime discrepanze. Il motore di calcolo di Pages, Numbers e Keynote ha sempre adottato tecniche sofisticate per evitare che queste differenze influenzassero i calcoli, ma a livelli di precisione molto elevati le differenze possono diventare evidenti.

Tramite una rappresentazione decimale dei numeri durante il calcolo, il nuovo motore di calcolo introduce miglioramenti notevoli rispetto alle versioni precedenti.

Di conseguenza, lo stesso calcolo = 10,0 - 9,8 darà ora come risultato 0,2. Aumentando il numero di decimali visualizzati, ora il valore mostrato è 0,2000000000000000000000000000000.

Esempio 2

Nelle versioni precedenti di Numbers, la formula ARROTONDA(8,415,2) restituisce 8,41. Questo comportamento è dovuto anche alle modalità interne di memorizzazione dei valori in formato binario.

Con il nuovo motore di calcolo, ARROTONDA(8,415,2) restituisce 8,42.

Informazioni sulla codifica di tipo BCD (Binary-Coded Decimal) e DFP (Decimal Floating Point)

La maggior parte dei computer memorizza i numeri come una serie di zeri e uno, vale a dire come valori binari. Grazie a un processo detto codifica BCD (Binary-Coded Decimal), i numeri frazionari vengono convertiti nelle rispettive controparti binarie. Se i numeri vengono codificati con il sistema BCD, alcuni valori non possono essere rappresentati con precisione assoluta. Ne è un esempio 0,2, che in formato binario diventa 0,001100110011... (periodico). Il valore deve essere troncato per codificarlo tramite BCD, il che modifica leggermente il valore memorizzato. Anche se le discrepanze introdotte dalla codifica BCD possono essere molto limitate, esse diventano più evidenti se amplificate attraverso determinati tipi di catene di calcoli.

Le ultime versioni di Pages, Numbers e Keynote codificano i numeri tramite la codifica DFP (Decimal Floating Point) a 128 bit. Si tratta di un metodo molto più accurato per codificare le frazioni decimali, che evita gli errori di arrotondamento tipici della codifica BCD. Inoltre, il motore di calcolo aggiornato opera direttamente con i numeri codificati con DFP: i valori nelle celle della tabella vengono memorizzati in modo più accurato e i risultati delle formule vengono calcolati con maggiore precisione.

In molte formule non vi sarà alcuna differenza visibile, ma i calcoli che generano o utilizzano numeri estremamente piccoli possono ora restituire una risposta ancora più precisa.

Data di pubblicazione: