JS高精度乘法(求 a 和 b 相乘的值,a 和 b 可能是小數,需要注意結果的精度問題)


用到的知識點===> 

toFixed(num); toFixed() 方法可把 Number 四舍五入為指定小數位數的數字; 參數num: 代表小數位數;

例:var num = 5.56789; num.toFixed(2); ==>5.57

parseFloat(string); 函數可解析一個字符串,並返回一個浮點數;參數 string 可為數字可為字符串,當參數為字符串時,判斷個字符是否是數字,如果是,則對字符串進行解析,直到到達數字的末端為止,然后以數字返回該數字,如果不是,返回NAN;

例:parseFloat("43ar4s2");==>43    parseFloat("qwar4s2");==>NAN

三目運算符  ;  

高精度乘法的一段代碼例子:

function multiply(a, b) {
// 先將數字轉換為字符串
var str1 = a.toString();
var str2 = b.toString();
// 獲取兩個數的小數位數
var lenA = (str1.indexOf('.')==-1)?0:(str1.length-str1.indexOf(".")-1);
var lenB = (str2.indexOf('.')==-1)?0:(str2.length-str2.indexOf(".")-1);
// 比較兩數的精度/位數,精度大的作為結果數精度
var len = Math.max(lenA,lenB);
// 運算結果
var result = parseFloat(a*b).toFixed(len);
return result
}
multiply(4,0.45677);

==>1.82708


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM