概要: このチュートリアルでは、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()); // 100
Code 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.00
Code 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); // false
Code language: JavaScript (javascript)
このチュートリアルでは、Number
型と、数値を書式設定するための便利なメソッドについて学びました。