数値(Number)

[up] [prev] [next]

■ 一覧

MAX_VALUE, MIN_VALUE, NaN, NEGATIVE_INFINITY, Number(), POSITIVE_INFINITY, toString(radix)

■ 数値

JavaScript では数値として10進数、8進数、16進数、実数、浮動小数を使用できます。0 で始まる整数は8進数、0xで始まる整数は16進数と解釈されます。

12345    // 10進数の12345
1.23     // 実数の 1.23
1.23e4   // 1.23 × 10の4乗
1.23E4   // 1.23 × 10の4乗
0777     // 8進数の777
0xff88   // 16進数のFF88

■ 数値オブジェクト

number = new Number(value) (e4/N3)

value を値として持つ数値オブジェクトを生成します。「すべての型をオブジェクトタイプとして実装する」というポリシーで用意されていますが、あまり用いられることはありません。数値と数値オブジェクトは厳密には異なります。

xx = new Number(123);
yy = 123;
zz = xx + yy;
alert(typeof(xx));  // object(数値オブジェクト)
alert(typeof(yy));  // number(数値)
alert(typeof(zz));  // number(演算結果は数値)

■ 文字列を数値に変換する

Netscape ブラウザで、<script> タグの language 属性に JavaScript1.2 を使用したときのみ、文字列の "123" と数値の 123 は別の値として解釈されるので注意しましょう。例えば、フォームに入力した値は文字列として扱われるので、次の例ではフォームに 123 を入力して OK ボタンを押しても「違うよ!!」が表示されてしまいます。

<script type="text/javascript">
<!--
function check() {
    if (document.F1.T1.value == 123) {
        alert("正解!!");
    } else {
        alert("違うよ!!");
    }
}
// -->
</script>
<form name="F1" action="#">
<input type="text" name="T1">
<input type="button" value="OK" onclick="check()">
</form>

文字列を数値に変換するには parseInt()、parseFloat()、Number() を用いるか、0 を減算することによっても、変換できます。

str = "123";
num1 = parseInt(str);
num2 = parseFloat(str);
num3 = Number(str);
num4 = str - 0;

■ n進数に変換する

number.toString(radix) (e4/N3)

toString() を用いて、数値を radix 進数(2〜36。省略時は10)の文字列に変換することができます。例えば下記の例では、65535 を 16 進数を示す文字列 "ffff" に変換します。

xx = 65535;
alert(xx.toString(16));

■ 不正な数値

Number.NaN (e4/N3)

NaN は、数値ではないことを示す特別な値です。== などの比較演算子では使用することはできないので、確認には isNaN() を用います。

var mon = 13;
if ((mon < 1) || (12 < mon)) {
    mon = Number.NaN;
}
if (isNaN(mon)) {
    alert("月の指定が誤っています。");
}

■ 限界値

Number.MAX_VALUE (e4/N3)
Number.MIN_VALUE (e4/N3)

MAX_VALUE は利用可能な最大値(約 1.79769e308)。MIN_VALUE は利用可能な最小値(約 2.22507e-308)を示します。

xx = 1.8 * 1.0e308;
if (xx >= Number.MAX_VALUE) {
   alert("計算可能な範囲を超えました");
}
Number.POSITIVE_INFINITY (e4/N3)
Number.NEGATIVE_INFINITY (e4/N3)

POSITIVE_INFINITY は正の無限大を示す特別な数値。NEGATIVE_INFINITY は負の無限大を示す特別な数値を示します。乗算などの演算が、JavaScript で扱える値の範囲を超えた場合をチェックすることができます。

xx = 1.8 * 1.0e308;
if ((xx == Number.POSITIVE_INFINITY)
 || (xx == Number.NEGATIVE_INFINITY)) {
   alert("計算可能な範囲を超えました");
}

[up] [prev] [next]
Copyright (C) 1996-2001 杜甫々
改訂版初版:2001年5月20日、最終更新:2001年6月17日
http://www.tohoho-web.com/js/number.htm