JavaScript浮點數加減乘除精確計算
浮點數的算術運算是有可能出現誤差的,下面分享一下能夠實現加減乘除精確運算的程式碼。
一.加法精確運算:
[JavaScript] 純文字檢視 複製程式碼function accAdd(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); } Number.prototype.add=function(arg){ return accAdd(arg,this); }
二.減法精確運算:
[JavaScript] 純文字檢視 複製程式碼function accSub(arg1,arg2){ return accAdd(arg1,-arg2); } Number.prototype.subtract=function (arg){ return accSub(this,arg); }
三.乘法精確運算:
[JavaScript] 純文字檢視 複製程式碼function 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(".",""))*Number(s2.replace(".",""))/Math.pow(10,m) } Number.prototype.mul=function (arg){ return accMul(arg, this); }
四.除法精確運算:
[JavaScript] 純文字檢視 複製程式碼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 (r1/r2)*pow(10,t2-t1); } } Number.prototype.div = function (arg){ return accDiv(this, arg); }
相關文章
- 浮點數的加減乘除運算細節
- js精確計算浮點數相加JS
- 計算機組成原理浮點數加減計算機
- 超大整數的加減乘除計算方法
- 浮點數加減法
- shell加減乘除運算
- python中精確的浮點數運算Python
- 三個數字的加減乘除模運算
- 位運算實現加減乘除
- Verilog實現加減乘除運算
- MongoDB 中的【加減乘除】運算MongoDB
- 計算機組成原理白學了,再次回顧浮點數加減計算機
- JavaScript加減乘數運算JavaScript
- js精確比較浮點數大小JS
- NumPy 簡單算術:加減乘除及其他運算
- 二進位制運算加減乘除+快速冪
- 7-2 算術入門之加減乘除
- BigDecimal加減乘除運算,保留2位小數點,初始化,與0的比較Decimal
- 79 不用加減乘除做加法
- JavaScript解決浮點數算數運算精度問題JavaScript
- 簡單的加減乘除(遞迴)遞迴
- JS加減乘除位移方法封裝JS封裝
- 大數模擬 加減乘除 判斷大數是否為素數 板子
- C++筆記:輸入輸出、變數、變數加減乘除C++筆記變數
- JS 加減乘除 尤其是減法精度問題JS
- js中浮點數計算常用方法JS
- 【oracle】日期加減計算Oracle
- 高精度四件套(加減乘除)
- 每日一練(34):不用加減乘除做加法
- 浮點數線上轉hex計算工具
- js處理浮點數計算誤差JS
- 【劍指offer】65. 不用加減乘除做加法
- JavaScript浮點數保留兩位小數JavaScript
- Java如何正確比較浮點數Java
- JavaScript年月日精確到秒倒數計時JavaScript
- 面試官瘋了嗎,問我為什麼浮點數不精確?面試
- 浮點數在計算機底層的表示及運算計算機
- Redis 精確去重計數 —— 咆哮點陣圖Redis