À propos de la précision accrue des calculs dans Pages, Numbers et Keynote

Une fois les apps Pages, Numbers et Keynote mises à jour, vous pouvez remarquer des changements mineurs dans les résultats des calculs au sein de vos documents. En effet, la dernière version d’iWork inclut une mise à jour du moteur de calcul, qui génère des résultats encore plus précis qu’avant.

La plupart des formules ne présenteront pas de différences visibles, mais les calculs qui aboutissent à des nombres extrêmement petits ou en utilisent peuvent maintenant générer une réponse encore plus précise.

Exemple 1

Dans les versions précédentes de Numbers, Pages et Keynote, un calcul tel que = 10,0 - 9,8 donnait le résultat 0,199999999999999.

Si vous changiez le nombre de chiffres après la virgule affichés dans la cellule (entre 1 et 14 chiffres après la virgule), vous pouviez résoudre ce problème afin d’obtenir le résultat attendu de 0,2. Augmenter le nombre de chiffres après la virgule affichés dans la cellule entraînait l’affichage de 0,199999999999999000000000000000.

Cela est dû à la manière dont le format binaire stocke les nombres décimaux en interne. Les représentations binaires de nombres décimaux peuvent induire de très petites différences. Le moteur de calcul de Pages, Numbers et Keynote a toujours eu recours à des techniques sophistiquées pour empêcher ces différences de s’appliquer aux calculs, mais les différences peuvent devenir visibles lorsque les nombres sont très précis.

Le nouveau moteur de calcul améliore considérablement les versions précédentes grâce à une représentation décimale des nombres tout au long du calcul.

Résultat, le même calcul = 10,0 - 9,8 génère à présent le résultat 0,2. L’augmentation du nombre de chiffres après la virgule affichés affiche désormais la valeur 0,2000000000000000000000000000000.

Exemple 2

Dans les versions précédentes de Numbers, la formule ARRONDI(8,415;2) retournait 8,41. Ceci est également dû à la façon dont les valeurs sont stockées en interne en mode binaire.

Avec le nouveau moteur de calcul, ARRONDI(8,415;2) retourne 8,42.

Différence entre le codage en décimal codé binaire et en virgule flottante

La plupart des ordinateurs stockent les nombres sous la forme d’une série de zéros et de uns, qui sont des valeurs binaires. Un processus appelé système en décimal codé binaire (DCB) convertit les nombres fractionnaires dans leurs équivalents binaires. Lorsque les nombres sont codés en DCB, certaines valeurs ne peuvent pas être représentées avec une précision absolue. Par exemple, 0,2 en mode binaire donne 0.001100110011... (etc.). La valeur doit être tronquée pour pouvoir être codée en DCB, ce qui modifie légèrement la valeur stockée. Même si les écarts introduits par le mode DCB peuvent être très minimes, ils deviennent plus visibles lorsqu’ils sont amplifiés via certains types de chaînes de calcul.

Les dernières versions de Pages, Numbers et Keynote codent les nombres à l’aide du codage DFP (Decimal Floating Point, virgule flottante) 128 bits. Il s’agit d’un moyen beaucoup plus précis de coder des fractions décimales, qui évite les erreurs d’arrondi typiques du codage DCB. De plus, le moteur de calcul mis à jour fonctionne directement avec les nombres codés en DFP : les valeurs des cellules des tableaux sont stockées avec plus de précision et les résultats des formules sont eux aussi plus précis.

De nombreuses formules ne présenteront pas de différences visibles, mais les calculs qui aboutissent à des nombres extrêmement petits ou en utilisent peuvent maintenant générer une réponse encore plus précise.

Date de publication: