Écrivez d'abord une démo pour reproduire le problème. J'utilise un environnement de test en ligne JS [ouvert]
Réécrivez la fonction DisplayNum ()
fonction affichageNum () {var num = 22,77; alert (num + 10);}Cliquez sur les résultats du bouton Afficher Afficher 32.7699999999996 N Les décimales apparaissent.
Tous les chiffres n'auront pas ce phénomène, à l'exception de 22,99 2.777, il semble que ces chiffres ne soient pas spéciaux.
J'ai vérifié quelques informations. L'un est le bogue dans le calcul du point flottant JS, et l'autre est lié à la conversion finale de l'ordinateur en calcul binaire. Cependant, pourquoi toutes les décimales n'ont-elles pas ce phénomène? Je ne sais pas pour le moment. J'irai plus loin si j'ai le temps.
Il y a maintenant deux solutions. La première consiste à utiliser la méthode JS .tofixée (n) pour obtenir directement des décimales à n chiffon. Je pense personnellement que cette méthode aura des problèmes de précision des données. Si les exigences de précision des données ne sont pas élevées, vous pouvez les utiliser. La deuxième méthode consiste à écrire votre propre méthode de fonctionnement JS.
Ce qui suit est une fonction d'addition personnalisée. L'ajout de cette méthode évitera les problèmes ci-dessus.
fonction addnum (num1, num2) {var sq1, sq2, m; try {sq1 = num1.toString (). Split (".") [1] .length;} catch (e) {sq1 = 0;} try {sq2 = num2.tostring (). Split (".") [1]. catch (e) {sq2 = 0;} m = math.pow (10, math.max (sq1, sq2)); return (num1 * m + num2 * m) / m;}Bien sûr, il peut également être écrit comme alerte ((num * 3 + 10 * 3) / 3); De cette façon, il n'y aura plus de décimales en n.
alerte ((num * 3 + 10 * 3) / 3); et alerte (num + 10); sont différents de l'alerte (num + 10); Ces deux façons d'écrire des ordinateurs pour se convertir en opérations binaires à la couche inférieure. C'est peut-être la raison des problèmes ci-dessus.
L'article ci-dessus sur la décimale JS calculant le point décimal et affichant plusieurs décimales est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.