Number 類型

2018-06-16 15:00 更新

精確地,數(shù)值類型擁有 18437736874454810627(即,264-253 +3)個(gè)值,表示為 IEEE-754 格式 64 位雙精度數(shù)值(IEEE 二進(jìn)制浮點(diǎn)數(shù)算術(shù)中描述了它),除了 IEEE 標(biāo)準(zhǔn)中的 9007199254740990(即,253-2)個(gè)明顯的“非數(shù)字 ”值;在 ECMAScript 中,它們被表示為一個(gè)單獨(dú)的特殊值:NaN。(請(qǐng)注意,NaN 值由程序表達(dá)式 NaN 產(chǎn)生,并假設(shè)執(zhí)行程序不能調(diào)整定義的全局變量 NaN。) 在某些實(shí)現(xiàn)中,外部代碼也許有能力探測出眾多非數(shù)字值之間的不同,但此類行為依賴于具體實(shí)現(xiàn);對(duì)于 ECMAScript 代碼而言,NaN 值相互之間無法區(qū)別。

 還有另外兩個(gè)特殊值,稱為正無窮和負(fù)無窮。為簡潔起見,在說明目的時(shí),用符號(hào) +∞ 和 -∞ 分別代表它們。(請(qǐng)注意,兩個(gè)無限數(shù)值由程序表達(dá)式 +Infinity(簡作Infinity) 和 -Infinity 產(chǎn)生,并假設(shè)執(zhí)行程序不能調(diào)整定義的全局變量 Infinity。)

 另外 18437736874454810624(即,264-253) 個(gè)值被稱為有限數(shù)值。其中的一半是正數(shù),另一半是負(fù)數(shù),對(duì)于每個(gè)正數(shù)而言,都有一個(gè)與之對(duì)應(yīng)的、相同規(guī)模的負(fù)數(shù)。

 請(qǐng)注意,還有一個(gè) 正零 和一個(gè) 負(fù)零 。為簡潔起見,類似地,在說明目的時(shí),分別用用符號(hào) +0 和 -0 代表這些值。(請(qǐng)注意,這兩個(gè)數(shù)字零由程序表達(dá)式 +0(簡作 0) 和-0 產(chǎn)生。)

 這 18437736874454810622(即,264-253-2) 個(gè)有限非零值分為兩種:

 其中 18428729675200069632(即,264-254) 個(gè)是常規(guī)值,形如

s * m * 2e

 這里的 s 是 +1 或 -1,m 是一個(gè)小于 253 但不小于 252 的正整數(shù),e 是一個(gè)閉區(qū)間 -1074 到 971 中的整數(shù)。

 剩下的 9007199254740990(即,253-2)個(gè)值是非常規(guī)的,形如

s * m * 2e

 這里的 s 是 +1 或 -1,m 是一個(gè)小于 252 的 正整數(shù),e 為 -1074

 請(qǐng)注意,所有規(guī)模不超過 253 的正整數(shù)和負(fù)整數(shù)都可被數(shù)值類型表示(不過,整數(shù) 0 有兩個(gè)呈現(xiàn)形式,+0 和 0)。

 如果一個(gè)有限的數(shù)值非零且用來表達(dá)它(上文兩種形式之一)的整數(shù) m 是奇數(shù),則該數(shù)值有 奇數(shù)標(biāo)記 (odd significand)。否則,它有 偶數(shù)標(biāo)記 (even significand)。

 在本規(guī)范中,當(dāng) x 表示一個(gè)精確的非零實(shí)數(shù)數(shù)學(xué)量(甚至可以是無理數(shù),比如 π)時(shí),短語 "the number value for x" 意為,以下面的方式選擇一個(gè)數(shù)字 值??紤]數(shù)值類型的所有有限值的集合(不包括 -0 和兩個(gè)被加入在數(shù)值類型中但不可呈現(xiàn)的值,即 21024(即 +1 * 253 * 2971)和 -21024 (那是 -1 * 253 * 2971)。選擇此集合 中值最接近 x 的一員,若集合中的兩值近似相等,那么選擇有偶數(shù)標(biāo)記的那個(gè);為此,21024 和 -21024 這兩個(gè)超額值被認(rèn)為有偶數(shù)標(biāo)記。最終,若選擇 21024 ,用 +∞替換它;若選擇 -21024 ,用 -∞替換它;若選擇 +0,有且只有 x 小于零時(shí),用 -0 替換它;其它任何被選取的值都不用改變。結(jié)果就是 x 的數(shù)字值。(此過程正是 IEEE-754"round to nearest" 模式對(duì)應(yīng)的行為。)

 某些 ECMAScript 運(yùn)算符僅涉及閉區(qū)間 -231 到 231-1 的整數(shù),或閉區(qū)間 0 到 232-1。這些運(yùn)算符接受任何數(shù)值類型的值,不過,數(shù)值首先被轉(zhuǎn)換為 232 個(gè)整數(shù)值中的一個(gè)。參見ToInt32 和 ToUint32 的 描述,分別在 章節(jié) 9.5 和 9.6 中。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)