Raison: JS gère l'addition, la soustraction, la multiplication et la division des décimales selon 2. Sur la base de l'ARG1, la précision de l'ARG2 est élargie ou inversement élargie, de sorte que la situation suivante se produira.
Le problème de l'ajout, de la soustraction, de la multiplication et de la division des points décimaux dans JavaScript (JS) est un bogue en js tel que 0,3 * 1 = 0,29999999999, etc. Le suivant répertorie quatre algorithmes JS qui peuvent parfaitement calculer la précision correspondante.
fonction accdiv (arg1, arg2) {var t1 = 0, t2 = 0, r1, r2; try {t1 = arg1.toString (). Split (".") [1] .length} catch (e) {} try {t2 = arg2.ToString (). Split (".") [1] .length} catch (e) {} avec (math) {r1 = nombre (arg1.tostring (). Remplace (".", ")) r2 = nombre (arg2.ToString (). Remplace (".", ")) return AccMul ((R1 / R2), POW (10, T2-T1)); }} / * Pourquoi poser des questions sur hovertree.com * / // fonction multiple accmul (arg1, arg2) {var m = 0, s1 = arg1.toString (), s2 = arg2.ToString (); try {m + = s1.split (".") [1] .length} catch (e) {} try {m + = s2.split (".") [1] .length} catch (e) {} return numéro (s1.replace (".", ")) numéro (s2.replace (". ")) / math.pow (10, m)} Accadd (arg1, arg2) {var r1, r2, m; try {r1 = arg1.toString (). Split (".") [1] .length} catch (e) {r1 = 0} try {r2 = arg2 } // fonction de soustraction subtr (arg1, arg2) {var r1, r2, m, n; try {r1 = arg1.toString (). Split (".") [1] .length} catch (e) {r1 = 0} try {r2 = arg2.ToString (). Split (".") [1] .length} catch (e) {r2 = 0} m = math.pow (10, math.max (r1, r2)); n = (r1> = r2)? r1: r2; return ((arg1 * m-arg2 * m) / m) .tofixed (n); }La solution parfaite à la perte de précision décimale JavaScript ci-dessus 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.