欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js小數(shù)計(jì)算小數(shù)點(diǎn)后顯示多位小數(shù)的實(shí)現(xiàn)方法

 更新時(shí)間:2016年05月30日 15:47:15   投稿:jingxian  
下面小編就為大家?guī)硪黄猨s小數(shù)計(jì)算小數(shù)點(diǎn)后顯示多位小數(shù)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

首先寫一個(gè)demo 重現(xiàn)問題,我使用的是一個(gè)js在線測(cè)試環(huán)境[打開]

改寫displaynum()函數(shù)

function displaynum(){var num = 22.77;alert(num + 10);}

點(diǎn)擊Show按鈕 結(jié)果顯示32.769999999996 出現(xiàn)了N多小數(shù).

也并不是所有數(shù)字都會(huì)出現(xiàn)這種現(xiàn)象, 除了 22.99  2.777 , 好像這幾個(gè)數(shù)字也沒什么特殊.

查了一些資料, 一是JS浮點(diǎn)數(shù)計(jì)算的bug, 另一個(gè)是和計(jì)算機(jī)最終轉(zhuǎn)換成二進(jìn)制計(jì)算有關(guān)系, 但是為什么不是所有小數(shù)都會(huì)有這種現(xiàn)象, 目前我也不清楚, 有時(shí)間再去深入研究一下。

現(xiàn)在有兩種解決方法, 第一種就是利用JS .toFixed(n) 方法, 直接獲取n位小數(shù), 個(gè)人覺得這種方法在數(shù)據(jù)精度上會(huì)有一些問題. 如果數(shù)據(jù)精度要求不高的話 可以使用. 第二種方法就是自己寫js 運(yùn)算方法.

以下是自定義加法函數(shù), 使用此方法進(jìn)行相加會(huì)避免上面問題。

function addNum(num1,num2){var sq1,sq2,m;try{sq1=num1.toString().split(".")[1].length;} catch(e){sq1=0;}try{sq2=num2.toString().split(".")[1].length;} catch(e){sq2=0;}m=Math.pow(10,Math.max(sq1,sq2));return ( num1 * m + num2 * m ) / m;}

當(dāng)然簡(jiǎn)單一點(diǎn)也可以寫成 alert((num * 3 + 10 * 3) /3); 這樣也不會(huì)出現(xiàn)n多小數(shù)。

alert((num * 3 + 10 * 3) /3); 與 alert(num + 10); 這兩種寫法計(jì)算機(jī)在底層轉(zhuǎn)換成二進(jìn)制運(yùn)算是有區(qū)別的, 或許這就是出現(xiàn)上述問題的原因

以上這篇js小數(shù)計(jì)算小數(shù)點(diǎn)后顯示多位小數(shù)的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解析原來瀏覽器原生支持JS Base64編碼解碼

    解析原來瀏覽器原生支持JS Base64編碼解碼

    這篇文章主要介紹了解析原來瀏覽器原生支持JS Base64編碼解碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 詳解javascript常用工具類的封裝

    詳解javascript常用工具類的封裝

    本篇文章主要給大家詳細(xì)分析了javascript常用工具類的封裝相關(guān)知識(shí)點(diǎn),有興趣的朋友參考下吧。
    2018-01-01
  • JavaScript控制網(wǎng)頁層收起和展開效果的方法

    JavaScript控制網(wǎng)頁層收起和展開效果的方法

    這篇文章主要介紹了JavaScript控制網(wǎng)頁層收起和展開效果的方法,涉及javascript操作網(wǎng)頁元素動(dòng)態(tài)效果的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • js中如何復(fù)制一個(gè)對(duì)象并獲取其所有屬性和屬性對(duì)應(yīng)的值

    js中如何復(fù)制一個(gè)對(duì)象并獲取其所有屬性和屬性對(duì)應(yīng)的值

    如果知道這個(gè)對(duì)象的所有屬性自然就可以重新new一個(gè),然后對(duì)每個(gè)屬性賦值,就可以做到,但如果不知道呢?如何創(chuàng)建一個(gè)內(nèi)容相同 的對(duì)象呢?下面有個(gè)不錯(cuò)的示例,大家可以看看
    2013-10-10
  • MATLAB中ismissing函數(shù)用法小結(jié)

    MATLAB中ismissing函數(shù)用法小結(jié)

    這篇文章主要介紹了MATLAB中ismissing函數(shù)用法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • JS 實(shí)現(xiàn)Table相同行的單元格自動(dòng)合并示例代碼

    JS 實(shí)現(xiàn)Table相同行的單元格自動(dòng)合并示例代碼

    Table相同行的單元格自動(dòng)合并,使用js來實(shí)現(xiàn)此效果,具體代碼下,感興趣的朋友可以參考下
    2013-08-08
  • js實(shí)現(xiàn)分頁功能

    js實(shí)現(xiàn)分頁功能

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)分頁功能,頁面查詢實(shí)現(xiàn)分頁功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 詳解uniapp無痛刷新token方法

    詳解uniapp無痛刷新token方法

    為了給用戶一個(gè)流暢的體驗(yàn),token過期后需要重新請(qǐng)求新的token替換過期的token。本文將詳細(xì)介紹uniapp無痛刷新token方法。
    2021-06-06
  • uniapp開發(fā)微信小程序自定義頂部導(dǎo)航欄功能實(shí)例

    uniapp開發(fā)微信小程序自定義頂部導(dǎo)航欄功能實(shí)例

    uni-app是一個(gè)使用Vue.js開發(fā)跨平臺(tái)應(yīng)用的前端框架,下面這篇文章主要給大家介紹了關(guān)于uniapp開發(fā)微信小程序自定義頂部導(dǎo)航欄功能的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • uniapp分包(小程序分包)處理圖文詳解

    uniapp分包(小程序分包)處理圖文詳解

    小程序上傳的時(shí)候,主包不能超過2M,如果超出,則會(huì)上傳失敗,這時(shí)候就需要把界面進(jìn)行分包,下面這篇文章主要給大家介紹了關(guān)于uniapp分包(小程序分包)處理的相關(guān)資料,需要的朋友可以參考下
    2023-01-01

最新評(píng)論