最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js加減乘除精確運(yùn)算方法實(shí)例代碼

 更新時間:2021年01月17日 16:30:29   作者:```木頭人```  
這篇文章主要給大家介紹了關(guān)于js加減乘除精確運(yùn)算方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

因?yàn)橛?jì)算機(jī)數(shù)字是浮點(diǎn)型,所以在計(jì)算過程中通常得到的并不是一個準(zhǔn)確的數(shù)據(jù),所以在做一些數(shù)組運(yùn)算的時候比較頭疼,我們這里就來寫一下精確運(yùn)算的方法

首先是加法 (這里以兩個數(shù)據(jù)相加為例)

function add(arg1, arg2) {

	 arg1 = arg1.toString(), arg2 = arg2.toString(); // 將傳入的數(shù)據(jù)轉(zhuǎn)化為字符串
  var arg1Arr = arg1.split("."), // 將小數(shù)的數(shù)據(jù)從小數(shù)點(diǎn)的位置拆開
   arg2Arr = arg2.split("."),
   d1 = arg1Arr.length == 2 ? arg1Arr[1] : "", // 獲取第一個數(shù)的小數(shù)點(diǎn)的長度
   d2 = arg2Arr.length == 2 ? arg2Arr[1] : ""; // 獲取第二個數(shù)的小數(shù)點(diǎn)的長度
  var maxLen = Math.max(d1.length, d2.length); // 獲取小數(shù)點(diǎn)長度較大的值
  var m = Math.pow(10, maxLen); // 這里表示10的小數(shù)點(diǎn)長度次方 也就是說如果小數(shù)點(diǎn)長度為2 m的值就是100 如果小數(shù)點(diǎn)長度是3 m的值就是1000如果不懂請自行查找api
  var result = Number(((arg1 * m + arg2 * m) / m).toFixed(maxLen)); // 將小數(shù)轉(zhuǎn)化為整數(shù)后相加在除掉兩個數(shù)乘過的倍數(shù)然后去小數(shù)點(diǎn)較長的長度的小數(shù)位數(shù)
  var d = arguments[2]; // 第三個參數(shù)用戶可以自行決定是否要傳遞 用來定義要保留的小數(shù)長度
  return typeof d === "number" ? Number((result).toFixed(d)) : result;
}

add(12.123, 12)

然后是減法 (減法其實(shí)就是一個數(shù)組加上另一個數(shù)字的負(fù)數(shù)所以和加法邏輯相同)

function sun(arg1, arg2) {
return add(arg1, -arg2)
}

其次是乘法

function mul(arg1, arg2) {
var r1 = arg1.toString(), // 將傳入的數(shù)據(jù)轉(zhuǎn)化為字符串
r2 = arg2.toString(),
m, resultVal, d = arguments[2];
m = (r1.split(".")[1] ? r1.split(".")[1].length : 0) + (r2.split(".")[1] ? r2.split(".")[1].length : 0); // 獲取兩個數(shù)字的小數(shù)位數(shù)的和
// 乘積的算法就是去掉小數(shù)點(diǎn)做整數(shù)相乘然后除去10的所有小數(shù)位的次方
resultVal = Number(r1.replace(".", "")) * Number(r2.replace(".", "")) / Math.pow(10, m);

return typeof d !== "number" ? Number(resultVal) : Number(resultVal.toFixed(parseInt(d)));
}

最后是減法 (除法和乘法就是一個相反的過程,不做過多解釋)

function div(arg1, arg2) {
     var r1 = arg1.toString(),
      r2 = arg2.toString(),
      m, resultVal, d = arguments[2];
     m = (r2.split(".")[1] ? r2.split(".")[1].length : 0) - (r1.split(".")[1] ? r1.split(".")[1].length : 0);
     resultVal = Number(r1.replace(".", "")) / Number(r2.replace(".", "")) * Math.pow(10, m);
     return typeof d !== "number" ? Number(resultVal) : Number(resultVal.toFixed(parseInt(d)));
    }

總結(jié)

到此這篇關(guān)于js加減乘除精確運(yùn)算方法的文章就介紹到這了,更多相關(guān)js加減乘除精確運(yùn)算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS兼容所有瀏覽器的DOMContentLoaded事件

    JS兼容所有瀏覽器的DOMContentLoaded事件

    這篇文章主要介紹了JS兼容所有瀏覽器的DOMContentLoaded事件的相關(guān)資料,標(biāo)準(zhǔn)瀏覽器中,使用DOMContentLoaded事件即可實(shí)現(xiàn)我們的要求,注冊事件處理函數(shù)也極為簡單,感興趣的朋友一起學(xué)習(xí)吧
    2018-01-01
  • 如何使用html2pdf.js生成pdf文件詳解

    如何使用html2pdf.js生成pdf文件詳解

    html2pdf.js是基于html2canvas和jsPDF的輕量級庫,可以在客戶端實(shí)現(xiàn)網(wǎng)頁到PDF的轉(zhuǎn)換,這篇文章主要介紹了如何使用html2pdf.js生成pdf文件的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • 基于bootstrap插件實(shí)現(xiàn)autocomplete自動完成表單

    基于bootstrap插件實(shí)現(xiàn)autocomplete自動完成表單

    這篇文章主要介紹了基于bootstrap插件實(shí)現(xiàn)autocomplete自動完成表單的相關(guān)資料,感興趣的朋友可以參考一下
    2016-05-05
  • JS數(shù)組方法concat()用法實(shí)例分析

    JS數(shù)組方法concat()用法實(shí)例分析

    這篇文章主要介紹了JS數(shù)組方法concat()用法,結(jié)合實(shí)例形式分析了JS數(shù)組concat()方法具體功能、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • js 右側(cè)浮動層效果實(shí)現(xiàn)代碼(跟隨滾動)

    js 右側(cè)浮動層效果實(shí)現(xiàn)代碼(跟隨滾動)

    因?yàn)轫?xiàng)目上有這樣的需求,在網(wǎng)上也查了些東西,之前是想找個差不多類似的套用一下。后來發(fā)覺沒有合適的,因時間緊迫就自己動手寫了一個簡單的 ,示例代碼如下 兼容火狐和IE7+
    2015-11-11
  • JavaScript實(shí)現(xiàn)網(wǎng)頁購物車

    JavaScript實(shí)現(xiàn)網(wǎng)頁購物車

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁購物車,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • JS插件clipboard.js實(shí)現(xiàn)一鍵復(fù)制粘貼功能

    JS插件clipboard.js實(shí)現(xiàn)一鍵復(fù)制粘貼功能

    這篇文章主要介紹了JS插件clipboard.js實(shí)現(xiàn)一鍵復(fù)制粘貼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 使用js判斷數(shù)組中是否包含某一元素(類似于php中的in_array())

    使用js判斷數(shù)組中是否包含某一元素(類似于php中的in_array())

    這篇文章主要是對使用js判斷數(shù)組中是否包含某一元素(類似于php中的in_array())需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • 小程序?qū)崿F(xiàn)上傳視頻功能

    小程序?qū)崿F(xiàn)上傳視頻功能

    這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)上傳視頻功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Javascript var變量隱式聲明方法

    Javascript var變量隱式聲明方法

    在JavaScript中,var用來聲明變量,但是這個語法并不嚴(yán)格要求,很多時修改,我們可以直接使用一個變量而不用var聲明它。
    2009-10-10

最新評論

桃源县| 达尔| 视频| 二手房| 手游| 威信县| 临洮县| 阳山县| 文登市| 马公市| 中卫市| 临朐县| 东安县| 民勤县| 绥芬河市| 通化县| 措勤县| 交城县| 枣阳市| 深圳市| 湘阴县| 浦县| 长宁县| 和田市| 拜城县| 子长县| 冕宁县| 黄陵县| 营山县| 彝良县| 建瓯市| 和林格尔县| 洛浦县| 镇远县| 图们市| 宜兴市| 曲沃县| 雷山县| 乌兰察布市| 通化县| 咸丰县|