【ES6學(xué)習(xí)筆記之】Number.EPSILON

ES6 在Number對(duì)象上面,新增一個(gè)極小的常量Number.EPSILON。根據(jù)規(guī)格,它表示 1 與大于 1 的最小浮點(diǎn)數(shù)之間的差淮野。

對(duì)于 64 位浮點(diǎn)數(shù)來(lái)說(shuō),大于 1 的最小浮點(diǎn)數(shù)相當(dāng)于二進(jìn)制的1.00..001吹泡,小數(shù)點(diǎn)后面有連續(xù) 51 個(gè)零骤星。這個(gè)值減去 1 之后,就等于 2 的 -52 次方爆哑。

Number.EPSILON === Math.pow(2, -52)
// true
Number.EPSILON
// 2.220446049250313e-16
Number.EPSILON.toFixed(20)
// "0.00000000000000022204"

Number.EPSILON實(shí)際上是 JavaScript 能夠表示的最小精度洞难。誤差如果小于這個(gè)值,就可以認(rèn)為已經(jīng)沒(méi)有意義了泪漂,即不存在誤差了廊营。

引入一個(gè)這么小的量的目的歪泳,在于為浮點(diǎn)數(shù)計(jì)算,設(shè)置一個(gè)誤差范圍露筒。我們知道浮點(diǎn)數(shù)計(jì)算是不精確的呐伞。

0.1 + 0.2
// 0.30000000000000004

0.1 + 0.2 - 0.3
// 5.551115123125783e-17

5.551115123125783e-17.toFixed(20)
// '0.00000000000000005551'

上面代碼解釋了,為什么比較0.1 + 0.2與0.3得到的結(jié)果是false慎式。

0.1 + 0.2 === 0.3 // false

Number.EPSILON可以用來(lái)設(shè)置“能夠接受的誤差范圍”伶氢。比如,誤差范圍設(shè)為 2 的-50 次方(即Number.EPSILON * Math.pow(2, 2))瘪吏,即如果兩個(gè)浮點(diǎn)數(shù)的差小于這個(gè)值癣防,我們就認(rèn)為這兩個(gè)浮點(diǎn)數(shù)相等。

5.551115123125783e-17 < Number.EPSILON * Math.pow(2, 2)
// true

因此掌眠,Number.EPSILON的實(shí)質(zhì)是一個(gè)可以接受的最小誤差范圍蕾盯。

function withinErrorMargin (left, right) {
  return Math.abs(left - right) < Number.EPSILON * Math.pow(2, 2);
}

0.1 + 0.2 === 0.3 // false
withinErrorMargin(0.1 + 0.2, 0.3) // true

1.1 + 1.3 === 2.4 // false
withinErrorMargin(1.1 + 1.3, 2.4) // true

上面的代碼為浮點(diǎn)數(shù)運(yùn)算,部署了一個(gè)誤差檢查函數(shù)蓝丙。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末级遭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子渺尘,更是在濱河造成了極大的恐慌挫鸽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸥跟,死亡現(xiàn)場(chǎng)離奇詭異丢郊,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)医咨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)枫匾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人拟淮,你說(shuō)我怎么就攤上這事婿牍。” “怎么了惩歉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)俏蛮。 經(jīng)常有香客問(wèn)我撑蚌,道長(zhǎng),這世上最難降的妖魔是什么搏屑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任争涌,我火速辦了婚禮,結(jié)果婚禮上辣恋,老公的妹妹穿的比我還像新娘亮垫。我一直安慰自己模软,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布饮潦。 她就那樣靜靜地躺著燃异,像睡著了一般。 火紅的嫁衣襯著肌膚如雪继蜡。 梳的紋絲不亂的頭發(fā)上回俐,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音稀并,去河邊找鬼仅颇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碘举,可吹牛的內(nèi)容都是我干的忘瓦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼引颈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼耕皮!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起线欲,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤明场,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后李丰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體苦锨,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年趴泌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舟舒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嗜憔,死狀恐怖秃励,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吉捶,我是刑警寧澤夺鲜,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站呐舔,受9級(jí)特大地震影響币励,放射性物質(zhì)發(fā)生泄漏丽柿。R本人自食惡果不足惜岖圈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望稿湿。 院中可真熱鬧,春花似錦仅胞、人聲如沸每辟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)渠欺。三九已至,卻和暖如春莱革,著一層夾襖步出監(jiān)牢的瞬間峻堰,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工盅视, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捐名,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓闹击,卻偏偏與公主長(zhǎng)得像镶蹋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赏半,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 二進(jìn)制和八進(jìn)制表示法 ES6 提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法贺归,分別用前綴0b(或0B)和0o(或0O)表示。 ...
    oWSQo閱讀 232評(píng)論 0 0
  • 1. 二進(jìn)制和八進(jìn)制表示法 ES6 提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法断箫,分別用前綴0b(或0B)和0o(或0O)表...
    MrZhou_b216閱讀 178評(píng)論 0 0
  • 一仲义、數(shù)值的擴(kuò)展 ES6 提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法婶熬,分別用前綴0b(或0B)和0o(或0O)表示。十六進(jìn)制...
    夜幕小草閱讀 304評(píng)論 0 1
  • ‘遇見(jiàn)老年的自己’埃撵,今天玩了一次歲月的穿越赵颅。觸動(dòng)到我的,開(kāi)始真正理解陪伴的意義暂刘。前兩天問(wèn)起女兒饺谬,小時(shí)候記...
    心靈的笑聲閱讀 155評(píng)論 1 5
  • 若欠了別人錢(qián),比別人還糾結(jié)谣拣;若撿了別人包募寨,比別人還著急;美食讓給饑餓人吃森缠,看著比自己吃還香甜绪商;未著腳跟時(shí),先考慮會(huì)...
    劉萬(wàn)軍L閱讀 257評(píng)論 0 1