Erreur de calcul flottant Javascript

Ici, j'ai un problème dans mon application Web (testé sur chrome et Firefox et nodejs):

Lorsque je cours (1.2 – 1), il retourne 0.19999999999999996 comme résultat.

Quelqu'un sait-il pourquoi?

Vous pouvez résoudre votre problème: (1.2 – 1) .toFixed (1) * 1 // 0.2

Vous pouvez utiliser plus de détails pour la méthode de javascript:

Méthode du nombre

Mise en œuvre dans JavaScript 1.5

ECMAScript Edition ECMAScript 3ème édition

Syntaxe

Number.toFixed ([digits])

Paramètre

Chiffres Le nombre de chiffres à afficher après la virgule; Ceci peut être une valeur comprise entre 0 et 20, inclus, et les implémentations peuvent éventuellement supporter une plus grande gamme de valeurs. Si cet argument est omis, il est traité comme 0.

Résultats

Une représentation de chaîne du nombre qui n'utilise pas la notation exponentielle et qui contient exactement les chiffres des chiffres après la décimale. Le nombre est arrondi si nécessaire, et la partie fractionnée est rembourrée avec des zéros si nécessaire pour qu'il ait la longueur spécifiée. Si le nombre est supérieur à 1e + 21, cette méthode appelle simplement Number.toString () et renvoie une chaîne en notation exponentielle.

Jette

RangeError Si les chiffres sont trop petits ou trop grands. Les valeurs entre 0 et 20, inclus, ne provoqueront pas de RangeError. Les implémentations sont également autorisées à supporter des valeurs plus grandes et plus petites. TypeError Si cette méthode est invoquée sur un objet qui n'est pas un numéro.

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toFixed