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); }
相關文章
- 浮點數的加減乘除運算細節
- javascript浮點數精確計算程式碼JavaScript
- js精確計算浮點數相加JS
- 超大整數的加減乘除計算方法
- PHP浮點數的精確計算BCMathPHP
- 計算機組成原理浮點數加減計算機
- 三個數字的加減乘除模運算
- python中精確的浮點數運算Python
- 在Java中實現浮點數的精確計算 (轉)Java
- MongoDB 中的【加減乘除】運算MongoDB
- 位運算實現加減乘除
- 大資料的運算加減乘除大資料
- JavaScript加減乘數運算JavaScript
- 計算機組成原理白學了,再次回顧浮點數加減計算機
- Verilog實現加減乘除運算
- js精確比較浮點數大小JS
- NumPy 簡單算術:加減乘除及其他運算
- 7-2 算術入門之加減乘除
- 二進位制運算加減乘除+快速冪
- javascript浮點數計算精度問題介紹JavaScript
- Java浮點數計算Java
- BigDecimal加減乘除運算,保留2位小數點,初始化,與0的比較Decimal
- 關於javascript中對浮點加,減,乘,除的精度分析JavaScript
- JS加減乘除位移方法封裝JS封裝
- 簡單的加減乘除(遞迴)遞迴
- Java浮點數float,bigdecimal和double精確計算的精度誤差問題總結JavaDecimal
- JavaScript解決浮點數算數運算精度問題JavaScript
- 第十週(11.18-11.24)----分數計算----(2)對兩個分數進行加減乘除
- C++筆記:輸入輸出、變數、變數加減乘除C++筆記變數
- 不用加減乘除做加法(Java實現)Java
- JS 加減乘除 尤其是減法精度問題JS
- 【oracle】日期加減計算Oracle
- 33:計算分數加減表示式的值
- js中浮點數計算常用方法JS
- 浮點數線上轉hex計算工具
- java 日期加減天數、月數、年數的計算方式Java
- 為什麼php的浮點數運算不準確PHP
- 大資料帶來信貸“四則運算”:金融生態需要“加減乘除”大資料