js數(shù)字舍入誤差以及解決方法(必看篇)
1、起因:
返回結(jié)果是true。
2、原因:計(jì)算機(jī)的二進(jìn)制實(shí)現(xiàn)和位數(shù)限制有些數(shù)無法有限表示。就像一些無理數(shù)不能有限表示,如 圓周率 3.1415926...,1.3333... 等。JS 遵循 IEEE 754 規(guī)范,采用雙精度存儲(chǔ)(double precision),占用 64 bit。
3、解決方法
(1)toFixed(),存在兼容性(chrome)
(2)比較穩(wěn)妥方法(數(shù)字如果過大,也會(huì)有誤差):
*JS 中能精準(zhǔn)表示的最大整數(shù)是 Math.pow(2, 53),十進(jìn)制即 9007199254740992。 大于 9007199254740992 的可能會(huì)丟失精度
function round(num,d){ //Step1:將num放大10的d次方倍 num*=Math.pow(10,d); //Step2:對(duì)num四舍五入取整 num = Math.round(num); //Step:返回num縮小10的d次方倍,獲得最終結(jié)果 return num/Math.round(10,d); } console.log(round(123.456)); //123.46
以上這篇js數(shù)字舍入誤差以及解決方法(必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
用JavaScript實(shí)現(xiàn)類似于ListBox功能示例代碼
這篇文章主要介紹了用JavaScript實(shí)現(xiàn)類似于ListBox功能,需要的朋友可以參考下2014-03-03js自動(dòng)滑動(dòng)+鼠標(biāo)滑動(dòng)區(qū)域
js自動(dòng)滑動(dòng)+鼠標(biāo)滑動(dòng)區(qū)域...2007-08-08JavaScript判斷對(duì)象是否為空對(duì)象的幾種常見方法
經(jīng)典面試題,研發(fā)時(shí)也經(jīng)常遇見的一個(gè)問題,如何判斷一個(gè)對(duì)象是空對(duì)象,這篇文章主要給大家介紹了關(guān)于JavaScript判斷對(duì)象是否為空對(duì)象的幾種常見方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06微信小程序獲取音頻時(shí)長與實(shí)時(shí)獲取播放進(jìn)度問題
這篇文章主要介紹了微信小程序獲取音頻時(shí)長與實(shí)時(shí)獲取播放進(jìn)度,文中給大家通過一個(gè)例子介紹了微信小程序音頻長度獲取的問題,感興趣的朋友跟隨腳本之家小編一起看看吧2018-08-08js關(guān)閉當(dāng)前頁面(窗口)的幾種方式總結(jié)
js關(guān)閉當(dāng)前頁面(窗口)的幾種方式總結(jié),需要的朋友可以參考一下2013-03-03ionic js 復(fù)選框 與普通的 HTML 復(fù)選框到底有沒區(qū)別
本文通過實(shí)例給大家演示ionic js 復(fù)選框 與普通的 HTML 復(fù)選框到底有沒區(qū)別的相關(guān)知識(shí),非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06js動(dòng)態(tài)創(chuàng)建、刪除表格示例代碼
生成一個(gè)2000*5的表格,每個(gè)單元格的內(nèi)容是行號(hào)+逗號(hào)+列號(hào),具體的實(shí)現(xiàn)過程如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08