Windows, macOS et la précision de la calculette

Aujourd’hui, je me moque de Windows, parce que j’ai dû installer beaucoup trop de fois l’OS de Redmond ces derniers mois pour le boulot. Donc parlons de la précision de la calculatrice.

Je suis tombé récemment sur un article qui explique que Windows 10 a corrigé en 2018 un bug qui traînait depuis longtemps. Un calcul comme √4 − 2 ne donnait en effet pas le bon résultat. Assez logiquement, pas besoin de passer par une calculette, la réponse doit être 0. Mais sous Windows 10, avant 2018, la réponse était -1.068281969439142e-19. J’ai aussi testé sous Windows 7 (qui donne cette réponse) et sous Windows XP, qui affiche -8,1648465955514287168521180122928e-39. Alors que sous macOS, la réponse est 0. J’ai testé avec Mojave, Catalina, Snow Leopard et Leopard.

Windows XP : FAUX


Windows 7 : FAUX


macOS (il faut passer en mode scientifique) : OK.

Il y a une explication, ceci dit. Dans les très vieux systèmes, la calculatrice utilisait des bibliothèques liées à la FPU du processeur, qui a une précision faible par design. Visiblement, depuis 2004, Microsoft utilise des bibliothèques avec une précision infinie pour les calculs basiques, et sur 32 décimales pour certaines opérations comme les racines carrées. Ce changement permet par exemple d’obtenir une réponse exacte avec le calcul suivant : 1/9 * 9. Avec une calculette qui effectue son travaille correctement, la réponse est logiquement 1. Si elle le fait mal, la réponse est 0,9999999. J’en parle parce que si l’application Calculette des Mac le fait correctement, le widget Calculette de feu le Dashboard tombe dans le piège.

Le Dashboard a quelques ratés

Mais pour en revenir à Windows, avant la mise à jour d’avril 2018 la calculette effectuait le calcul avec une bibliothèque différente, ce qui amenait un résultat faux, même si la précision reste bonne dans l’absolu.

Sur un vieux Windows 10 (1511) : FAUX


Windows 10 à jour : OK