JS小數點加減乘除運算後精度缺失的解決方案

2021-09-11 10:38:11 字數 1113 閱讀 4980

/**

* 加法運算,避免資料相加小數點後產生多位數和計算精度損失。

* * @param num1加數1 | num2加數2

*/function numadd(num1, num2) catch (e)

try catch (e)

basenum = math.pow(10, math.max(basenum1, basenum2));

return (num1 * basenum + num2 * basenum) / basenum;

};/**

* 減法運算,避免資料相減小數點後產生多位數和計算精度損失。

* * @param num1被減數  |  num2減數

*/function numsub(num1, num2) catch (e)

try catch (e)

basenum = math.pow(10, math.max(basenum1, basenum2));

precision = (basenum1 >= basenum2) ? basenum1 : basenum2;

return ((num1 * basenum - num2 * basenum) / basenum).tofixed(precision);

};/**

* 乘法運算,避免資料相乘小數點後產生多位數和計算精度損失。

* * @param num1被乘數 | num2乘數

*/function nummulti(num1, num2) catch (e)

try catch (e)

return number(num1.tostring().replace(".", "")) * number(num2.tostring().replace(".", "")) / math.pow(10, basenum);

};/**

* 除法運算,避免資料相除小數點後產生多位數和計算精度損失。

* * @param num1被除數 | num2除數

*/function numdiv(num1, num2) catch (e)

try catch (e)

with (math)

};

JS小數點加減乘除運算後位數增加的解決方案

加法運算,避免資料相加小數點後產生多位數和計算精度損失。param num1加數1 num2加數2 function numadd num1,num2 catch e try catch e basenum math.pow 10,math.max basenum1,basenum2 return ...

js加減乘除運算(避免精度丟失)

加法函式 function accadd arg1,arg2 catch e try catch e m math.pow 10,math.max r1,r2 return arg1 m arg2 m m 給number型別增加乙個add方法,使用時直接用 add 即可完成計算。number.pro...

JS加減乘除運算精度缺失問題

計算機在計算時會把數字轉化為二進位制來計算,此時只能模仿十進位制進行四捨五入,但是二進位制只有 0 和 1 兩個,於是變為 0 舍 1 入。這是浮點數運算時出現誤差,丟失精度的原因。為了解決這些問題,我們可以把浮點數乘以乙個數,時期變為整數再進行運算,之後再除以這個數,恢復原來的大小來解決浮點數計算...