JavaScript 入門 | 標準オブジェクト | Number メソッド

Number メソッド

Number メソッドは、Number オブジェクトに定義されている数値関連の作業を行うときに使用するメソッドである。
最もよく使用される代表的な Number メソッドは次のとおりである。

  1. Number.parseFloat()
  2. Number.parseInt()
  3. Number.isNaN()
  4. Number.isFinite()
  5. Number.isInteger()
  6. Number.isSafeInteger()

Number.parseFloat() メソッド

Number.parseFloat() メソッドは、文字列を解析 (parsing) し、文字列に含まれる数値部分を実数形式で返す。文字列に複数の数値が存在する場合、そのうち最初の数値だけを実数形式で返す。

このメソッドは、グローバル関数である parseFloat() 関数とまったく同じ動作を行う。

Number.parseFloat("12");         // 12
Number.parseFloat("12.34");      // 12.34
Number.parseFloat("12文字列");   // 12
Number.parseFloat("12 34 56");   // 12
Number.parseFloat("文字列 56")); // NaN

このメソッドは Safari と Internet Explorer ではサポートされない。

Number.parseInt() メソッド

Number.parseInt() メソッドは、文字列を解析し、文字列に含まれる数値部分を整数形式で返す。
文字列に複数の数値が存在する場合、そのうち最初の数値だけを整数形式で返す。

このメソッドは、グローバル関数である parseInt() 関数とまったく同じ動作を行う。

Number.parseInt("12");         // 12
Number.parseInt("12.34");      // 12
Number.parseInt("12文字列");   // 12
Number.parseInt("12 34 56");   // 12
Number.parseInt("文字列 56")); // NaN

このメソッドは Safari と Internet Explorer ではサポートされない。

Number.isNaN() メソッド

Number.isNaN() メソッドは、渡された値が NaN かどうかを検査する。

このメソッドは、グローバル関数である isNaN() 関数が持っていた、数値への強制変換によって発生する問題を回避できるようにする。
このメソッドは数値である値に対してのみ動作し、その値が NaN の場合だけ true を返す。

Number.isNaN(NaN);       // true
Number.isNaN(0 / 0);     // true
// 次はグローバル関数 isNaN() で誤った結果を返す例である。
isNaN("NaN");            // true
isNaN(undefined);        // true
isNaN("文字列");         // true
// Number.isNaN() メソッドでは正しい結果を返している。
Number.isNaN("NaN");     // false
Number.isNaN(undefined); // false
Number.isNaN("文字列");  // false

このメソッドは Internet Explorer ではサポートされない。

Number.isFinite() メソッド

Number.isFinite() メソッドは、渡された値が有限な数かどうかを検査する。

このメソッドは、グローバル関数である isFinite() 関数のように、渡された値を数値へ強制変換しない。
このメソッドは数えられる値に対してのみ動作し、その値が有限である場合だけ true を返す。

Number.isFinite(0);        // true
Number.isFinite(3e45);     // true
Number.isFinite(Infinity); // false
Number.isFinite(NaN);      // false
// 次はグローバル関数 isFinite() で誤った結果を返す例である。
isFinite("0");             // true
isFinite(null);            // true
// Number.isFinite() メソッドでは正しい結果を返している。
Number.isFinite("0");      // false
Number.isFinite(null);     // false

このメソッドは Internet Explorer ではサポートされない。

Number.isInteger() メソッド

Number.isInteger() メソッドは、渡された値が整数かどうかを検査する。
渡された値が整数であれば true を返し、整数でない値や NaN、Infinity のような値はすべて false を返す。

Number.isInteger(0);        // true
Number.isInteger(-100);     // true
Number.isInteger(0.1);      // false
Number.isInteger("文字列"); // false
Number.isInteger(Infinity); // false
Number.isInteger(true);     // false

このメソッドは Safari と Internet Explorer ではサポートされない。

Number.isSafeInteger() メソッド

Number.isSafeInteger() メソッドは、渡された値が安全な整数 (safe integer) かどうかを検査する。

安全な整数 (safe integer) とは、IEEE 754 国際標準で定義された 64 ビット浮動小数点数で正確に表現される整数を意味する。
-(2^53 - 1) から (2^53 - 1) までのすべての整数が安全な整数に含まれる。

Number.isSafeInteger(10);                  // true
Number.isSafeInteger(Math.pow(2, 53) - 1); // true
Number.isSafeInteger(Math.pow(2, 53));     // false
Number.isSafeInteger(Infinity);            // false
Number.isSafeInteger(NaN);                 // false
Number.isSafeInteger(3.14);                // false

Math.pow() は、べき乗演算を行う Math オブジェクトのメソッドである。
たとえば Math.pow(2, 53) は 2^53 を返す。

このメソッドは Safari と Internet Explorer ではサポートされない。

JavaScript Number メソッド

メソッド 説明
Number.parseFloat() 文字列を解析し、文字列に含まれる数値部分を実数形式で返す。
Number.parseInt() 文字列を解析し、文字列に含まれる数値部分を整数形式で返す。
Number.isNaN() 渡された値が NaN かどうかを検査する。
Number.isFinite() 渡された値が有限な数かどうかを検査する。
Number.isInteger() 渡された値が整数かどうかを検査する。
Number.isSafeInteger() 渡された値が安全な整数 (safe integer) かどうかを検査する。

Number.prototype メソッド

すべての Number インスタンスは Number.prototype からメソッドとプロパティを継承する。
最もよく使用される代表的な Number.prototype メソッドは次のとおりである。

メソッド 説明
toExponential() Number インスタンスを指数表記へ変換した後、その値を文字列として返す。
toFixed() Number インスタンスの小数部分の桁数を渡された値で固定した後、その値を文字列として返す。
toPrecision() Number インスタンスの仮数部と小数部分を合わせた桁数を渡された値で固定した後、その値を文字列として返す。
toString() Number インスタンスの値を文字列として返す。
valueOf() Number インスタンスが持つ値を返す。

toExponential() メソッド

このメソッドは、Number インスタンスの値を指数表記へ変換した後、その値を文字列として返す。
このとき渡された値は、指数表記における小数部分の桁数として使用される。

原型

numObj.toExponential([小数部分の桁数])
var num = 12.3456;       // Number インスタンスを作成する。
num.toExponential();     // 1.23456e+1
num.toExponential(2);    // 1.23e+1
num.toExponential(4);    // 1.2346e+1
12.3456.toExponential(); // 1.23456e+1

toFixed() メソッド

このメソッドは、Number インスタンスの小数部分の桁数を渡された値で固定した後、その値を文字列として返す。

原型

numObj.toFixed([小数部分の桁数])
var num = 3.14159265;  // Number インスタンスを作成する。
num.toFixed();         // 3
num.toFixed(2);        // 3.14
num.toFixed(4);        // 3.1416
3.14159265.toFixed(6); // 3.141593

toPrecision() メソッド

このメソッドは、Number インスタンスの仮数部と小数部分を合わせた桁数を渡された値で固定した後、その値を文字列として返す。

原型

numObj.toPrecision([全体桁数])
var num = 3.14159265;      // Number インスタンスを作成する。
num.toPrecision();         // 3.14159265
num.toPrecision(2);        // 3.1
num.toPrecision(4);        // 3.142
3.14159265.toPrecision(6); // 3.14159

toString() メソッド

このメソッドは Number インスタンスの値を文字列として返す。
渡された値に該当する基数へまず値を変換した後、その値を文字列として返す。

原型

numObj.toString([基数])
var num = 255;       // Number インスタンスを作成する。
num.toString();      // 255
(255).toString();    // 255
(3.14).toString();   // 3.14
num.toString(2);     // 11111111
(100).toString(16);  // 64
(-0xff).toString(2); // -11111111

数値リテラルに toString() メソッドを使用するときは、必ず括弧 (()) を使用して数値リテラルを囲む必要がある。
そうしないと JavaScript は SyntaxError を発生させ、プログラムを停止する。

valueOf() メソッド

このメソッドは、Number インスタンスが持っている値を返す。

原型

numObj.valueOf()
var numObj = new Number(123); // 123 の値を持つ Number インスタンスを作成する。
typeof numObj;                // object
var num = numObj.valueOf();
num;                          // 123
typeof num;                   // number