Première photo :
Que se passe-t-il ?
Raison : js utilise le binaire pour les calculs décimaux
Regardez d'abord la méthode de conversion des décimales décimales en binaire :
Les chiffres entiers d'un nombre décimal sont les chiffres entiers de un nombre binaire, décimal La décimale d'un nombre est la décimale d'un nombre binaire
Si on a une décimale 111,4 (10), on la calcule :
Prenons d'abord la décimale 0,4 et "multipliez-le par deux" Méthode d'arrondi "
0,4*2=0,8 Le nombre en position entière du résultat est 0 | Appuyez sur
0,8*2=1,6 " Prendre 1 * 2 = 1,2 Obtenez 0 🎜>0,8*2=1,6 1 | <.> 0,6*2 = 1,2 Prendre 1 |
0 .2*2 = 0,4 Prenez 0 |
Viens ici . Le nombre binaire après la virgule décimale est
0.01100110... (Boucle 0110)
Je n'écrirai pas l'entier, la méthode est de diviser par 2 et de prendre le reste
2,6+2,6+2,6 dans la question =7,800000000001. Lors du calcul des opérations décimales en JavaScript, les décimales sont d'abord converties en binaire correspondant. Certaines décimales ne peuvent pas être complètement converties en binaire. C'est là que se produit la première erreur. Une fois toutes les décimales converties en binaire, des opérations entre systèmes binaires sont effectuées pour obtenir le résultat binaire. Le résultat binaire est ensuite converti en décimal, où une deuxième erreur se produit généralement.
Solution : Spécifiez le nombre de décimales à conserver (7.8).toFixed(2)=7.80;. Cette méthode peut perdre en précision. Il existe également des moyens de personnaliser cet ajout en ligne. 🎜>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!