Razón: JS maneja la adición, resta, multiplicación y división de decimales según 2. Sobre la base de Arg1, la precisión de Arg2 se expande o se expande inversamente, por lo que ocurrirá la siguiente situación.
El problema de sumar, restar, multiplicar y división de puntos decimales en JavaScript (JS) es un error en JS, como 0.3*1 = 0.2999999999999, etc. Los siguientes enumeran cuatro algoritmos JS que pueden calcular perfectamente la precisión correspondiente.
función accDiv (arg1, arg2) {var t1 = 0, t2 = 0, r1, r2; Pruebe {t1 = arg1.ToString (). Split (".") [1] .Length} Catch (e) {} try {t2 = arg2.ToString (). Split (".") [1] .length} capt (e) {} con (matemáticas) {r1 = number (arg1.tostring (). reemplazar ("." "))))))))) r2 = número (arg2.ToString (). reemplazar (".", ")) return accMul ((r1/r2), pow (10, t2-t1)); }} / * ¿Por qué preguntar sobre Hovertree.com * /// Función múltiple ACCMUL (arg1, arg2) {var m = 0, s1 = arg1.ToString (), s2 = arg2.ToString (); Pruebe {m+= s1.split (".") [1] .length} catch (e) {} try {m+= s2.split (".") [1] .length} catch (e) {} número de retorno (s1.replace (".", ")*Número (s2.replace (". "")) Accadd (arg1, arg2) {var r1, r2, m; Pruebe {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)) } // función de subtracción subtr (arg1, arg2) {var r1, r2, m, n; Pruebe {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 solución perfecta a la pérdida de precisión decimal de JavaScript anterior es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.