Grund: JS übernimmt die Addition, Subtraktion, Multiplikation und Aufteilung von Dezimalstellen gemäß 2. Auf der Grundlage von Arg1 wird die Genauigkeit von Arg2 erweitert oder umgekehrt erweitert, sodass die folgende Situation auftritt.
Das Problem des Hinzufügens, Subtrahierens, Multiplikation und Aufteilung von Dezimalpunkten in JavaScript (JS) ist ein Fehler in JS wie 0,3*1 = 0,299999999999 usw. Die folgenden Listen sind vier JS -Algorithmen, die die entsprechende Genauigkeit perfekt berechnen können.
Funktion 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) {} mit (math) {r1 = nummer (arg1.tostring (). r2 = nummer (arg2.tostring (). ersetzen (".", ") return accmul ((r1/r2), pow (10, t2-t1)); }} / * Warum nach Hovertree.com * /// Multiple Funktion Accmul (arg1, arg2) {var m = 0, s1 = arg1.toString (), s2 = arg2.toString () fragen; Versuchen Sie {m+= s1.split (".") [1] .Length} catch (e) {} try {m+= s2split (".") [1] .Length} catch (e) {} Return -Nummer (S1.Replace (". Accadd (arg1, arg2) {var r1, r2, m; try {r1 = arg1.toString (). split (".") [1] .Length} catch (e) {r1 = 0} try {r2 = arg2.toString (). Split (") [1] .Length} catch (e) {r2 = 0} mmm = math. } // Subtraktionsfunktion 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} mmatmmath.pow (10, math.max (10, math.max (10, math.max n = (r1> = r2)? R1: R2; return ((arg1*m-arg2*m)/m) .Tofixed (n); }Die perfekte Lösung für den oben genannten Verlust der JavaScript -Dezimalgenauigkeit ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.