js加減乘除丟失精度問題解決方法_javascript技巧
加減乘除
在javascript中,當你使用小數進行加減乘除運算時,你會發現,所得到的結果有時後面帶有長長的一段小數,使運算變得複雜,並且影響計算結果。上網查詢了一下原因,大致如下:在javascript中,帶小數的資料運算時總會出現好多位小數.這是因為在javascript中浮點數的計算是以2進制計算的。
複製程式碼 程式碼如下:
/**
* 加法運算,避免資料相加小數點後產生多位數和計算精度損失。
*
* @param num1加數1 | num2加數2
*/ 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; 🎜>};
/**
* 加法運算,避免資料相減少數點後產生多位數和計算精確度損失。
*
* @param num1被減數 | num2減數
*/
function numSub(num1, num2) {
var baseNum, baseNum1, baseNum2;
var precision/// 精度
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) / NumbaseNum). ;
};
/**
* 乘法運算,避免資料相乘小數點後產生多位數和計算精確度損失。
*
* @param num1被乘數 | num2乘數
*/
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);
};
/**
* 除法運算,避免資料相除小數點後產生多位數和計算精度損失。
*
* @param num1被除數 | num2除數
*/
function numDiv(num1, num2) {
var baseNum1 = 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);
}
};
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)