數值資料

更新:2007 年 11 月

選擇 JScript 中的整數和浮點數這二種數值資料型別時,需視使用的特定狀況而定。整數資料和浮點數資料有不同的常值表示方式。

正整數、負整數和數字零都是整數。整數可以用基底 10 (十進位)、基底 8 (八進位) 和基底 16 (十六進位) 來表示。在 JScript 中,大部分的數字都是以十進位寫成的。可用 0 (零) 做為前置字元,來代表八進位的整數。它們只能包含 0 到 7 的數字。前置字元為 0、包含數字 8 和 (或) 9 的數字會被解譯為十進位的數字。我們通常不建議使用八進位數字。

可以使用 "0x" (零和 x|X) 做為前置字元,來代表十六進位 (hex) 的整數,它們只能包含 0 到 9 的數字,以及字母 A 到 F (大寫或小寫)。字母 A 到 F 分別代表以 10 為基底的 10 到 15 的單一數字;也就是說,0xF 等於 15,而 0x10 等於 16。

八進位和十六進位的數字都可以是負數,但是不能有小數部分,而且不能以科學 (指數) 附註撰寫。

浮點數值可以是含小數部分的整數。它們和整數一樣,可以用數字後面接小數點,再接上其他數字來表示。此外,它們也能以科學標記法來表示;也就是說,大寫或小寫的 e 會用來表示「10 的乘冪」。某個數字如果是以一個 0 開頭而且包含一個小數點,則會解譯為十進位浮點數常值,而非八進位常值。

此外,JScript 中的浮點數數字可以代表特殊數值,整數資料型別則不能。這些是:

  • NaN (非數字)。在針對不適當的資料執行算術運算時使用,例如字串或未定義的值。

  • Infinity。當正數太大而無法在 JScript 中表示出來時使用。

  • -Infinity (負無限) 當負數的範圍過大而無法用 JScript 表示時使用。

  • 正和負 0。JScript 在某些情形下,會將正零和負零視為不同。

以下是 JScript 數字的一些範例。請注意,以 "0x" 為首而且包含小數點的數字,會產生錯誤。

數字

說明

相等的十進位數

.0001、0.0001、1e-4、1.0e-4

四個相等的浮點數字。

0.0001

3.45e2

浮點數值。

345

42

整數。

42

0378

整數。雖然它看起來像八進位的數字 (它以零為首),但 8 不是一個有效的八進位數,所以這個數字被視為十進位數。這會產生層級 1 警告。

378

0377

八進位整數。請注意雖然它看起來只比上個數字小一,但實際值完全不同。

255

0.0001, 00.0001

浮點數字。即使這個數以零為首,它並不是八進位的數字,因為它有一個小數點。

0.0001

0Xff

十六進位整數。

255

0x37CF

十六進位整數。

14287

0x3e7

十六進位整數。請注意字母 e 不能被視為指數。

999

0x3.45e2

這是一個錯誤。十六進位數字不可以有小數部分。

N/A (編譯器錯誤)

任何整數類資料型別的變數都只能表示有限範圍的數字。如果您嘗試指派的數值常值對整數類資料型別而言太大或太小,編譯時期將產生型別不符合的錯誤。如需詳細資訊,請參閱資料型別摘要

常值資料型別

JScript 解譯數值常值時的資料型別,通常不重要。但如果這些數字很大或是非常精準,這些詳細資訊就變得十分重要。

JScript 中的整數常值可以表示 int、long、ulong、decimaldouble 等型別的資料,取決於常值的大小和用途。int 型別範圍 (-2147483648 到 2147483647) 中的常值,會被解譯為型別 int。在該範圍外,但在 long 型別範圍 (-9223372036854775808 至 9223372036854775807) 內的常值解譯為 long。在該範圍外,但在 ulong 型別範圍 (9223372036854775807 至 18446744073709551615) 內的常值解譯為 ulong。其他所有整數常值,會被解譯為 double 型別而失去精度。最後一個規則的例外狀況是,如果立即將常值存入具 decimal 型別的變數或常數中,或是將常值傳給具接收 decimal 型別的函式,則常值會被解譯為 decimal

JScript 浮點數常值會被解譯為 double 資料型別,除非這個常值立即被當做 decimal 使用 (例如整數常值) 而被解譯為 decimaldecimal 資料型別不能表示 NaN、正 Infinity 或負 Infinity

請參閱

概念

JScript 運算式

參考

NaN 屬性 (全域)

Infinity 屬性

其他資源

JScript 中的資料

資料型別 (JScript)