亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js加減乘除丟失精度問題解決方法

 更新時(shí)間:2014年05月16日 17:05:40   作者:  
在javascript中,帶小數(shù)的數(shù)據(jù)運(yùn)算時(shí)總會(huì)出現(xiàn)好多位小數(shù).這是因?yàn)樵趈avascript中浮點(diǎn)數(shù)的計(jì)算是以2進(jìn)制計(jì)算的
在javascript中,當(dāng)你使用小數(shù)進(jìn)行加減乘除運(yùn)算時(shí),你會(huì)發(fā)現(xiàn),所得到的結(jié)果有時(shí)后面帶有長長的一段小數(shù),使運(yùn)算變得復(fù)雜,并且影響計(jì)算結(jié)果。上網(wǎng)查詢了一下原因,大致如下:在javascript中,帶小數(shù)的數(shù)據(jù)運(yùn)算時(shí)總會(huì)出現(xiàn)好多位小數(shù).這是因?yàn)樵趈avascript中浮點(diǎn)數(shù)的計(jì)算是以2進(jìn)制計(jì)算的。
復(fù)制代碼 代碼如下:

/**
* 加法運(yùn)算,避免數(shù)據(jù)相加小數(shù)點(diǎn)后產(chǎn)生多位數(shù)和計(jì)算精度損失。
*
* @param num1加數(shù)1 | num2加數(shù)2
*/
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;
};
/**
* 加法運(yùn)算,避免數(shù)據(jù)相減小數(shù)點(diǎn)后產(chǎn)生多位數(shù)和計(jì)算精度損失。
*
* @param num1被減數(shù) | num2減數(shù)
*/
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);
};
/**
* 乘法運(yùn)算,避免數(shù)據(jù)相乘小數(shù)點(diǎn)后產(chǎn)生多位數(shù)和計(jì)算精度損失。
*
* @param num1被乘數(shù) | num2乘數(shù)
*/
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);
};
/**
* 除法運(yùn)算,避免數(shù)據(jù)相除小數(shù)點(diǎn)后產(chǎn)生多位數(shù)和計(jì)算精度損失。
*
* @param num1被除數(shù) | num2除數(shù)
*/
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);
}
};

相關(guān)文章

  • javaScript產(chǎn)生隨機(jī)數(shù)的用法小結(jié)

    javaScript產(chǎn)生隨機(jī)數(shù)的用法小結(jié)

    這篇文章主要介紹了javaScript產(chǎn)生隨機(jī)數(shù)的用法小結(jié),包括JavaScript Math.random()內(nèi)置函數(shù) ,Js 隨機(jī)數(shù)產(chǎn)生6位數(shù)字的代碼,需要的朋友可以參考下
    2018-04-04
  • uni-app低成本封裝一個(gè)取色器組件的簡單方法

    uni-app低成本封裝一個(gè)取色器組件的簡單方法

    最近想實(shí)現(xiàn)一個(gè)uniapp取色器組件,實(shí)現(xiàn)后發(fā)現(xiàn)效果還不錯(cuò),下面這篇文章主要給大家介紹了關(guān)于uni-app低成本封裝一個(gè)取色器組件的相關(guān)資料,文中通過圖文介紹的介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • JavaScript 常見安全漏洞和自動(dòng)化檢測(cè)技術(shù)

    JavaScript 常見安全漏洞和自動(dòng)化檢測(cè)技術(shù)

    js安全漏洞目前存在較大的技術(shù)難題,本文結(jié)合案例給大家詳解JavaScript 常見安全漏洞和自動(dòng)化檢測(cè)技術(shù),需要的朋友可以參考下
    2015-08-08
  • JavaScript門面模式詳解

    JavaScript門面模式詳解

    這篇文章主要為大家詳細(xì)介紹了JavaScript門面模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • webpack引入eslint配置詳解

    webpack引入eslint配置詳解

    本篇文章主要介紹了webpack引入eslint配置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • Vue項(xiàng)目vscode 安裝eslint插件的方法(代碼自動(dòng)修復(fù))

    Vue項(xiàng)目vscode 安裝eslint插件的方法(代碼自動(dòng)修復(fù))

    這篇文章主要介紹了Vue項(xiàng)目vscode 安裝eslint插件的方法 代碼自動(dòng)修復(fù),需要的朋友可以參考下
    2020-04-04
  • JS控制按鈕10秒鐘后可用的方法

    JS控制按鈕10秒鐘后可用的方法

    這篇文章主要介紹了JS控制按鈕10秒鐘后可用的方法,涉及JavaScript基于時(shí)間函數(shù)控制頁面元素樣式動(dòng)態(tài)變換的技巧,需要的朋友可以參考下
    2015-12-12
  • js復(fù)制文本到粘貼板(Clipboard.writeText())

    js復(fù)制文本到粘貼板(Clipboard.writeText())

    這篇文章主要介紹了js復(fù)制文本到粘貼板(Clipboard.writeText()),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • js中鍵盤事件實(shí)例簡析

    js中鍵盤事件實(shí)例簡析

    這篇文章主要介紹了js中鍵盤事件,以一個(gè)較為簡單的實(shí)例形式分析了js響應(yīng)鍵盤事件的操作技巧,需要的朋友可以參考下
    2015-01-01
  • layui上傳圖片到服務(wù)器的非項(xiàng)目目錄下的方法

    layui上傳圖片到服務(wù)器的非項(xiàng)目目錄下的方法

    今天小編就為大家分享一篇layui上傳圖片到服務(wù)器的非項(xiàng)目目錄下的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09

最新評(píng)論