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浮點運算的精度問題(例:0.1+0.7=0.7999999999999999)JS
- 全面總結 JS 中浮點數運算問題JS
- 如何巧妙著運用「位運算」來解決問題?
- 探尋 JavaScript 精度問題以及解決方案JavaScript
- 位運算解決多標籤問題【原創】
- 計算水仙花數運算超時問題
- JS計算精度小記JS
- JS中浮點數精度問題JS
- Golang浮點數精度丟失問題擴充套件包解決方案Golang套件
- Java中的小數運算與精度損失Java
- JS toFixed 精度問題JS
- php 處理 浮點數 精度運算 數字處理等PHP
- Java中的"+"運算問題Java
- iOS --NSDecimalNumber 處理計算精度不準確問題iOSDecimal
- 關於int型別數值的運算問題型別
- 高效能運算GPU解決方案系列教程二–高效能運算叢集效能指標GPU指標
- JS中toFixed()方法的問題及解決方案JS
- 巧用JS位運算JS
- 一行程式碼解決JS數字大於2^53精度錯誤的問題行程JS
- Shell階段02 shell變數運算(整數運算/小數運算), shell變數案例變數
- 算數運算子
- 北鯤雲超算平臺如何幫助高效能運算行業提供解決方案行業
- JS加法運算全解析JS
- JS中的位運算JS
- JavaScript 中精度問題及解決思路彙總JavaScript
- 完美解決方案-雪花演算法ID到前端之後精度丟失問題演算法前端
- js小數計算的問題,為什麼0.1+0.2 != 0.3JS
- 暢享高效能運算!天翼雲HPC解決方案來了
- FPGA中加減乘除運算的注意問題FPGA
- iOS浮點數精度問題iOS
- 高精度計算合集
- Python數學運算Python
- JS大坑之19位數的Number型精度丟失問題JS