J'ai quelques entrées sur mon site représentant des nombres à virgule flottante avec jusqu'à dix chiffres de précision (en décimal). À un certain moment, dans le code de validation côté client, j'ai besoin de comparer deux de ces valeurs pour voir si elles sont égales ou non, et ici, comme on peut s'y attendre, les intrinsèques de IEEE754 échouent avec des choses comme (2.0000000000 == 2.0000000001) = true.Précision arbitraire Chiffres flottants sur JavaScript
Je peux casser le nombre à virgule flottante en deux longs pour chaque côté du point, faire à chaque côté une longueur de 64 bits et faire mes comparaisons manuellement, mais il semble si moche!
Une bibliothèque JavaScript correcte pour gérer les nombres flottants de précision arbitraires (ou au moins garantis) sur Javascript?
Merci d'avance!
PS: Une solution basée GWT a ++
Ce problème peut apparaître sur tout point flottant de précision arbitraire, sinon vous définissez la précision pour l'égalité. C'est la nature intrinsèque des nombres à virgule flottante. Utilisez un calcul à virgule fixe avec une longueur arbitraire. – kirilloid
@kirilloid bien sûr il peut apparaître, juste pensé qu'il valait la peine d'élaborer la question (conduit généralement à des réponses plus élaborées). Merci quand même! – opsidao