数値データ
JScript の数値データに整数データと浮動小数点データのどちらを使用するかは、データを使用する状況によって決まります。 整数データと浮動小数点データを表す方法もいくつかあります。
正の整数、負の整数、および 0 は整数型です。 これらの数値は、基数 10 (10 進数)、基数 8 (8 進数)、および基数 16 (16 進数) で表現できます。 JScript では、ほとんどの数値は 10 進数で表記されます。 8 進数の整数であることを示すには、先頭に 0 を付けます。 各桁には 0 ~ 7 の数字だけを使用します。 先頭が 0 でも、8 や 9 が含まれている場合は 10 進数として処理されます。 一般的には、8 進数の使用はお勧めしません。
16 進数 (hex) の数値であることを示すには、先頭に "0x" (x は大文字でも小文字でも可) を付けます。 各桁には 0 ~ 9 の数字および A ~ F の英字 (大文字でも小文字でも可) を使用します。 A ~ F の英字は、1 桁の数値として、10 進数の 10 ~ 15 に相当します。 たとえば、0xF は 15、0x10 は 16 に相当します。
8 進数および 16 進数は負の値である場合もあります。小数部分はなく、指数表記は使用できません。
浮動小数点数は、整数に小数部分が付加されます。 浮動小数点数は、整数型の表記に、小数点以下の数値を指定して表現します。 また、指数表記も使用できます。 10 の累乗の指数を表すには、大文字または小文字の e が使用されます。 1 つの 0 から始まり小数点を含む数値は、10 進数の浮動小数点リテラルとして解釈され、8 進数リテラルには解釈されません。
また、JScript の浮動小数点数は、整数型では表現できない特殊な数値を表すことができます。 これらの数値は、次のとおりです。
NaN (非数)。 数値演算が不適切なデータ (文字列や未定義値) で実行された場合に使用されます。
Infinity。 正の数値が JScript で表記するには大きすぎる場合に使用されます。
-Infinity (負の Infinity)。負の数値が JScript で表現するには小さすぎる場合に使用されます。
正の 0 および負の 0。 JScript では、状況に応じて正の 0 と負の 0 が区別されます。
JScript の数値の例を次に示します。 数値が "0x" で始まり小数点がある場合は、エラーが発生します。
数値 |
説明 |
10 進数での表記 |
---|---|---|
.0001、0.0001、1e-4、1.0e-4 |
この 4 つの浮動小数点数は、すべて同じ値です。 |
0.0001 |
3.45e2 |
浮動小数点数。 |
345 |
42 |
整数。 |
42 |
0378 |
整数。 "0" で始まるため 8 進数のように見えますが、8 は 8 進数では使用できない数値であるため、10 進数として処理されます。 この表記では、レベル 1 の警告が生成されます。 |
378 |
0377 |
8 進数です。 上記の数値より 1 だけ小さい数値に見えますが、実際にはまったく異なる数値です。 |
255 |
0.0001, 00.0001 |
浮動小数点数です。 "0" で始まりますが小数点があるため 8 進数ではありません。 |
0.0001 |
0Xff |
16 進数の整数です。 |
255 |
0x37CF |
16 進数の整数です。 |
14287 |
0x3e7 |
16 進数の整数です。 e は累乗として処理されません。 |
999 |
0x3.45e2 |
エラーが発生します。 16 進数は小数部を持つことができません。 |
N/A (コンパイラ エラー) |
整数型の変数は、有限の数値範囲だけを表現できます。 整数型に対して大きすぎる、または小さすぎる数値リテラルを代入しようとすると、コンパイル時に型の不一致エラーが発生します。 詳細については、「データ型の概要」を参照してください。
リテラルのデータ型
ほとんどの場合、JScript が数値リテラルを解釈するときのデータ型は、あまり意識する必要はありません。 ただし、数値が非常に大きい場合や正確な場合、データ型は重要になります。
JScript の整数リテラルは、サイズと使用方法に応じて、int、long、ulong、decimal、または double 型のデータを表します。 int 型の範囲 (-2147483648 ~ 2147483647) にあるリテラルは、int 型として解釈されます。 int 型の範囲外で long 型の範囲 (-9223372036854775808 ~ 9223372036854775807) にあるリテラルは、long 型として解釈されます。 long 型の範囲外で ulong 型の範囲 (9223372036854775807 ~ 18446744073709551615) にあるリテラルは、ulong 型として解釈されます。 その他の整数リテラルはすべて double 型として解釈されるため、精度の情報は失われます。 例外的に、リテラルがすぐに decimal 型の変数または定数に格納される場合、または decimal を受け取る関数に渡される場合は、decimal として解釈されます。
JScript の浮動小数点リテラルは double 型に解釈されます。ただし、整数型と同様に、すぐに decimal として使用される場合は decimal として解釈されます。 decimal 型では、NaN、正の Infinity、または負の Infinity を表現できません。