備忘録的プログラミングリファレンス

Number

 Number オブジェクトは数値を扱うためのオブジェクトです。JavaScript では、数値を Number オブジェクトとして扱います。

var a = 10;

 上記の例では、10 という数値を変数に代入することを宣言されたところで 10 という Number オブジェクトが自動で作成されます。その Number オブジェクトが a という変数に代入されます。

 C言語といったプログラム言語では数値や文字列はプリミティブとして扱い、オブジェクトは任意に作成します。
 オブジェクト指向である JavaScript では基本的にすべてのデータをオブジェクトとして生成します。数値もまた宣言したところで Number オブジェクトが生成されます。

 JavaScript では数値はすべて 64 ビット長の浮動小数点数として扱われます。

 JavaScript では数値や文字列はすべてオブジェクトとして生成されるのですが、実際にはオブジェクト型データまたはプリミティブ型のデータとしてと2通りの扱いがあります。
 プログラムコードを編集する上ではあまり気にすることがないのですが、エラーを修正する際にたまにオブジェクト型なのかプリミティブ型なのかという問題が出ます。

 数学的な計算についてはMathページを参照してください。

 ここでは主に Number クラスについて解説します。

ページ内 Index

Number クラス

 Number クラスは数値を扱うためのオブジェクトを生成するための定義です。Number オブジェクトの元になるものです。
 Number クラスは以下のようなコンストラクターを持ちますが利用する機会はほぼないです。

var object_number = new Number(10);

 数値を宣言したところで JavaScript では Number オブジェクトが自動で生成されます。

var a = 10;

 上記の例では、10 という整数リテラルが Number オブジェクトして自動で生成されます。そして、a という変数に代入されます。

 数値としては、整数、浮動小数点があります。数値として10進数、2進数、16進数、8進数を扱うことができます。
 特殊な値として無限大( Infinity )、負の無限大( -Infinity )、NaN(数値ではない)も数値として扱われます。

プロパティ(Property)

 Number クラスには以下のプロパティがあります。

プロパティ概要
.constructorオブジェクトそのものへの参照

静的プロパティ

 以下は静的プロパティで、環境によって固定された値を返します。

プロパティ概要
Number.EPSILON1より大きい1との最小値の差
Number.MAX_SAFE_INTEGER扱うことができる最大の整数
Number.MIN_SAFE_INTEGER最小の整数
Number.MAX_VALUE最大の数値
Number.MIN_VALUE最大の数値
Number.NaN数値ではない
Number.NEGATIVE_INFINITY負の無限数値
Number.POSITIVE_INFINITY正の無限数値

 静的プロパティは固定されたプロパティで、主に環境によって扱える数値の範囲などを確認するために使用します。
 使用方法は以下のように Number オブジェクトに静的プロパティを加えて使用します。

静的プロパティの使用例
console( Number.MAX_VALUE );
/* 1.7976931348623157e+308 */

メソッド(Method)

 数値を文字列に変換するには、.toString()メソッドを使用します。
 その他にも、以下のように数値を文字列に変換するメソッドがあります。

メソッド概要
.toExponential()数値を指数表記の文字列に変換
.toFixed()数値を固定小数点表記の文字列に変換
.toLocaleString()数値を言語依存の文字列に変換
.toPrecision()数値を固定小数点または指数表記の文字列に変換。精度は指定可能
.toString()数値を文字列に変換
.valueOf()Number オブジェクトをプリミティブ値として返す

静的メソッド

 以下は静的メソッドで、環境によって固定された値を返します。

メソッド概要
Number.isFinite()有限数であるか
Number.isInteger()整数であるか
Number.isNaN()NaN であるか
Number.isSafeInteger()扱うことのできる範囲の整数であるか。(-(253 - 1) から 253 - 1 の間)
Number.parseFloat()浮動小数点値として返す。グローバルの parseFloat() 関数もある
Number.parseInt()整数値として返す。グローバルの parseInt() 関数もある

 Number.parseFloat()、Number.parseInt() 関数は文字列の数値部分を取り出すことができる。グローバル関数としてもあるので Number.parseInt() のみでも使用できる。

固定少数点数 .toFixed()

 .toFixed() メソッドは小数点以下の桁数の表示を指定することができます。

.toFixed()
let x = 125.31;
console.log( x.toFixed(0) );	// 125
console.log( x.toFixed(1) );	// 125.3
console.log( x.toFixed(2) );	// 125.31
console.log( x.toFixed(3) );	// 125.310

指数表現 .toExponential()

 .toExponential() メソッドは指数表現の桁数を指定することができます。値は四捨五入されます。

.toFixed()
let x = 56432.31;
console.log( x.toFixed(0) );	// 6e+4
console.log( x.toFixed(1) );	// 5.6e+4
console.log( x.toFixed(2) );	// 5.64e+4
console.log( x.toFixed(3) );	// 5.643e+4

文字列表現 .toString()

 .toString() メソッドは基数(2 進数、10 進数、16 進数など)を指定することができます。

.toFixed()
let x = 15;
console.log( x.toString() );	// 15( 10 進法)
console.log( x.toString(10) );	// 15( 10 進法)
console.log( x.toString(2) );	// 1111( 2 進法)
console.log( x.toFixed(16) );	// f( 16 進法)

3桁ごとの区切り .toLocaleString()

 .toLocaleString() メソッドによって3桁ごとに,を付加することができます。
 .toLocaleString() メソッドは地域ごとに合わせた数値の表現をするメソッドです。ただし、文字列に変換することに注意してください。詳しくは数値の書式についてを参照してください。

toLocaleString()
var num=123456789;
var txt_num = num.toLocaleString();
..
txt_num は  になります

 ただし、この方法では小数点以下で丸め込み処理が起きます。もし丸められたくない場合は、maximumFractionDigits オプションを利用します。

maximumFractionDigits オプション
var num=123456789.123456789;
var txt_num = num.toLocaleString( undefined, { maximumFractionDigits: 10 });
..
txt_num は  になります

 maximumFractionDigits オプションの指定値は丸め込みが起きない桁数です。

Example

 Number の静的プロパティの例です。

 確認ボタンをクリックしてみてください。

確認ボタンをクリックしてください。以下のHTML,CSS,Scriptコード例が実行されます。