JavaScriptのNumber型

概要: このチュートリアルでは、JavaScriptのNumber型と、数値を効果的に扱うための便利なメソッドについて学びます。

JavaScriptのNumber型入門

プリミティブな数値型に加えて、JavaScriptは数値用のNumber参照型も提供しています。

Numberオブジェクトを作成するには、Numberコンストラクタを使用し、次のように数値値を渡します。

var numberObject = new Number(100);Code language: JavaScript (javascript)

この例では、数値100を持つnumberObjectを定義しています。

Numberオブジェクトからプリミティブな値を取得するには、次のようにvalueOf()メソッドを使用します。

console.log(numberObject.valueOf()); // 100Code language: JavaScript (javascript)

数値値を文字列として取得するには、toString()またはtoLocaleString()メソッドを使用します。

toString()メソッドは、数値を表示する基数を決定するオプションの引数を受け入れます。基数(または底)とは、位取り記数法で数値を表す一意の数字の数です。

たとえば、10進法は0から9までの10個の数字を使用するため、基数は10です。

次の例を見てください。

var aNumber = new Number(10);
console.log(aNumber.toString()); // "10"Code language: JavaScript (javascript)

この例では、aNumberはプリミティブ値10を持っているため、toString()メソッドは10進数で10を返します。

ただし、次の例では、aNumber変数の2進数形式を返します。

console.log(aNumber.toString(2)); // "1010"Code language: JavaScript (javascript)

プリミティブな数値値でメソッドを呼び出すと、JavaScriptは一時的にそれをNumberオブジェクトに変換します。この機能は、JavaScriptのプリミティブラッパー型と呼ばれます。例:

let x = 10;
console.log(x.toString(16)); // "a"Code language: JavaScript (javascript)

数値の書式設定

数値を指定した小数点以下の桁数で書式設定するには、toFixed()メソッドを使用します。

toFixed()メソッドは、使用する小数点以下の桁数を示す引数を受け入れます。

numberObject.toFixed(decimalPlaces);Code language: CSS (css)

toFixed()メソッドは、固定小数点表記を使用して、数値に対応する文字列を返します。以下に例を示します。

var distance = 19.006
console.log(distance.toFixed(2)); // 19.01

distance = 19.004;
console.log(distance.toFixed(2)); // 19.00Code language: JavaScript (javascript)

Webブラウザは丸め方法を異なる方法で使用する可能性があることに注意することが重要です。そのため、特に金銭的価値を扱うアプリケーションでは、toFixed()メソッドを使用する際には注意する必要があります。

数値を指数表記で書式設定するには、次の例に示すようにtoExponential()メソッドを使用します。

var x = 10, y = 100, z = 1000;

console.log(x.toExponential());
console.log(y.toExponential());
console.log(z.toExponential());

// "1e+1"
// "1e+2"
// "1e+3"Code language: JavaScript (javascript)

指定された精度で数値オブジェクトの文字列表現を取得するには、toPrecision()メソッドを使用します。

numberObject.toPrecision(precision);Code language: CSS (css)

precision引数は、有効桁数を決定します。

toPrecision()メソッドは、指数表記または固定小数点表記でNumberオブジェクトの文字列表現を返し、有効桁数に丸められます。

精度引数を省略すると、toPrecision()メソッドはtoString()メソッドのように動作することに注意してください。次の例を参照してください。

let x = 9.12345;

console.log(x.toPrecision());    // '9.12345'
console.log(x.toPrecision(4));   // '9.123'
console.log(x.toPrecision(3));   // '9.12'
console.log(x.toPrecision(2));   // '9.1'
console.log(x.toPrecision(1));   // '9'Code language: JavaScript (javascript)

場合によっては、たとえば指数表記が返されることがあります。

x = 123.5;
console.log(x.toPrecision(2)); // "1.2e+2"Code language: JavaScript (javascript)

JavaScriptのNumberオブジェクトとプリミティブな数値

次の表は、Numberオブジェクトとプリミティブな数値の違いを示しています。

演算子Numberオブジェクト数値
 typeof "object" "number"
 instanceof Number true false

以下に例を示します。

let numberObject = new Number(10);
let number = 10;

// typeof
console.log(typeof numberObject);
console.log(typeof number);
// instanceof
console.log(numberObject instanceof Number); // true
console.log(number instanceof Number); // falseCode language: JavaScript (javascript)

このチュートリアルでは、Number型と、数値を書式設定するための便利なメソッドについて学びました。

このチュートリアルは役に立ちましたか?