## 数値（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