js算數運算精度問題解決方案
在進行算數運算的時候,可能會出現精度問題,當然這個問題在各個語言中都有,但是多數語言都進行了封裝,也可以說那些語言不存在這個問題,但是javascript在這個方面就沒有如此體貼,所以需要程式設計師自行處理,下面就是能夠實現此功能的相應的程式碼。
一.算數加運算:
[JavaScript] 純文字檢視 複製程式碼function numAdd(num1,num2){ var baseNum,baseNum1,baseNum2; try{baseNum1=num1.toString().split(".")[1].length;} catch(e){baseNum1 = 0;} try{baseNum2 = num2.toString().split(".")[1].length;} catch(e){baseNum2 = 0;} baseNum = Math.pow(10, Math.max(baseNum1, baseNum2)); return (num1 * baseNum + num2 * baseNum) / baseNum; };
以上程式碼可以消除加運算的精度問題。
二.算數減運算:
[JavaScript] 純文字檢視 複製程式碼function numSub(num1,num2){ var baseNum,baseNum1,baseNum2; var precision; try{baseNum1=num1.toString().split(".")[1].length;} catch(e){baseNum1=0;} try{baseNum2=num2.toString().split(".")[1].length;} catch(e){baseNum2=0;} baseNum=Math.pow(10, Math.max(baseNum1, baseNum2)); precision=(baseNum1 >= baseNum2) ? baseNum1 : baseNum2; return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision); };
以上程式碼可以消除減運算的精度問題。
三.算數乘運算:
[JavaScript] 純文字檢視 複製程式碼function numMulti(num1,num2){ var baseNum=0; try{baseNum+= num1.toString().split(".")[1].length;} catch(e){} try{baseNum += num2.toString().split(".")[1].length;} catch(e){} return Number(num1.toString().replace(".",""))*Number(num2.toString().replace(".",""))/Math.pow(10,baseNum); };
以上程式碼可以消除乘法運算的精度問題。
四.算數除法運算:
[JavaScript] 純文字檢視 複製程式碼function numDiv(num1,num2){ var baseNum=0,baseNum2=0; var baseNum3,baseNum4; try{baseNum1=num1.toString().split(".")[1].length;} catch(e){baseNum1=0;} try{baseNum2=num2.toString().split(".")[1].length;} catch(e){baseNum2=0;} with(Math){ baseNum3=Number(num1.toString().replace(".", "")); baseNum4=Number(num2.toString().replace(".", "")); return (baseNum3 / baseNum4) * pow(10, baseNum2 - baseNum1); } };
以上程式碼可以消除除法運算的精度問題。
相關文章
- JavaScript解決浮點數算數運算精度問題JavaScript
- 關於JS的浮點數計算精度問題解決方案JS
- JS四則運算與四捨五入精度問題及解決方案JS
- JavaScript 小數乘法運算精度問題JavaScript
- 記錄--前端金額運算精度丟失問題及解決方案前端
- js 處理四則運算失去精度問題JS
- javascript小數乘法運算導致的精度問題JavaScript
- 精度計算問題
- JavaScript中解決計算精度丟失的問題JavaScript
- javascript浮點數計算精度問題介紹JavaScript
- 全面總結 JS 中浮點數運算問題JS
- 如何巧妙著運用「位運算」來解決問題?
- 探尋 JavaScript 精度問題以及解決方案JavaScript
- 計算水仙花數運算超時問題
- 位運算解決多標籤問題【原創】
- 【轉】JS浮點數運算Bug的解決辦法JS
- Java中的小數運算與精度損失Java
- Golang浮點數精度丟失問題擴充套件包解決方案Golang套件
- JS計算精度小記JS
- JS中浮點數精度問題JS
- 利用字串實現高精度數值運算(四)字串
- 利用字串實現高精度數值運算(三)字串
- 利用字串實現高精度數值運算(二)字串
- 利用字串實現高精度數值運算(一)字串
- JavaScript 浮點數及運算精度調整總結JavaScript
- php 處理 浮點數 精度運算 數字處理等PHP
- JS toFixed 精度問題JS
- Java中的"+"運算問題Java
- 關於int型別數值的運算問題型別
- 解決對時間列運算導致不能走索引的問題索引
- iOS --NSDecimalNumber 處理計算精度不準確問題iOSDecimal
- 高效能運算GPU解決方案系列教程二–高效能運算叢集效能指標GPU指標
- Shell階段02 shell變數運算(整數運算/小數運算), shell變數案例變數
- linux shell中運算字元與數字的問題Linux字元
- 算數運算子
- 巧用JS位運算JS
- 【求教:如何解決 java 浮點數精度問題】Java
- 運算整數C/C++位運算技巧C++