Причина: JS обрабатывает добавление, вычитание, умножение и деление десятичных дел в соответствии с 2. На основе ARG1 точность ARG2 расширяется или обратно расширена, поэтому будет происходить следующая ситуация.
Проблема добавления, вычитания, умножения и деления десятичных точек в JavaScript (JS) является ошибкой в JS, такой как 0,3*1 = 0,29999999999 и т. Д. В следующих перечислены четыре алгоритмы JS, которые могут идеально рассчитать соответствующую точность.
функция 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) {} с (math) {r1 = число (arg1.tostring (). r2 = number (arg2.toString (). заменить (".", ")) return accmul ((r1/r2), pow (10, t2-t1)); }} / * Зачем спрашивать о hovertree.com * /// множественная функция 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 number (s1.replace (".", "))*Num 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) arg1/max/arg1/max (r2)) (r2) rag1/max/m math.pow. } // Функция вычитания 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); }Идеальным решением для десятичной убытки JavaScript Decimal является все контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.