Javascript (js) decimal point addition, subtraction, multiplication, division, is a js bug such as 0.3*1 = 0.2999999999, the following lists the four js algorithms that can perfectly find the corresponding precision // division function 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) {}with (Math) {r1 = Number (arg1.toString (). replace (". "," ") r2 = Number (arg2.toString (). replace (". "," ") return accMul (r1/r2), pow (10, t2-t1);} // multiplication function accM Ul (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 Number (s1.replace (". "," ") * Number (s2.replace (". "," ")/Math. pow (10, m)} // Add function 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} m = Math. pow (10, Math. max (r1, r2) return (arg1 * m + arg2 * m)/m} // subtraction function 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 );}