JavaScript/Number

出典: フリー教科書『ウィキブックス(Wikibooks)』
移動: 案内検索

数値(すうち、number)とは、すなわち数量を表す概念です。JavaScriptの数値はいたって簡単です。Numberはプリミティブ型の数値に対応するオブジェクトです。

概要[編集]

JavaScriptでは整数と浮動小数点数がサポートされています。浮動小数点数とは実数のコンピュータによる近似です。IEEE754の倍精度64ビットが使われます。

プログラミング言語における整数の書き方を整数リテラル(せいすうリテラル、integer literal)、浮動小数点数の書き方を浮動小数点リテラル(ふどうしょうすうてんリテラル、floating point literal)といいます。リテラル (literal) とは文字通り、文字のことを意味しますが、変数に対して定数のことであると捉えることもできます。

整数[編集]

整数リテラルは次のような形をしています。

  • 42
  • -1
  • 0
  • 864e5
  • 0xFFFF

いずれもふつうの整数ですが、864e5というのは科学的表記法で864 \times 10^5= 8.64 \times 10^7)、すなわち86400000に等しい数値です。0xFFFFというのは十六進法による表示で、十進法の65535に等しい数値です。JavaScriptにおいて0xFFFF65535はまったく同じ数値として扱われます(ただし、文字列に変換した場合はこの限りではありません)。

JavaScriptには二進法や八進法の整数リテラルはありません。0から始まる八進法の整数リテラルは過去にサポートされていましたが、ECMA-262第3版で削除されました。多くの処理系では後方互換のために依然として八進法の整数リテラルをサポートしていますが、非推奨とされています。

浮動小数[編集]

一方、浮動小数点リテラルは次のような形をしています。

  • 0.5
  • .5
  • -1.4142135623730951
  • 3.141592653589793
  • 1.0e-8

1.0e-81.0 \times 10^{-8}、すなわち0.00000001と等しい数値です。

整数と浮動小数点数[編集]

JavaScriptにおいて、32ビット符号なし整数・32ビット符号付き整数・64ビット浮動小数が1つの数値にまとめられています。C言語などとは異なり、整数同士の演算で32ビットで表現できる範囲を超えた場合は、64ビット浮動小数に自動的に切り替わります。

typeof 演算子のような手法で、この3種のうちどれが使われているかを判定する演算子は存在しません。しかしながら、ビット演算子を使うことにより、64ビット浮動小数を32ビット符号なし整数や32ビット符号付き整数に変換できます。具体的には、>>> 演算子により、32ビット符号なし整数になり、その他のビット演算子により、32ビット符号付き整数に変換されます。64ビット浮動小数は53ビット符号付き整数を誤差なく表現できるため、32ビット符号なし整数や32ビット符号付き整数を意図的に64ビット浮動小数に切り替える方法は JavaScript の言語仕様には存在しません。

NaN[編集]

NaN」も参照

NaN(ナン、Not a Number、非数、ひすう)とは、数値でないことを表す特殊な値です。

Number[編集]

NumberオブジェクトはJavaScriptのプリミティブ型である数値型をラップします。Numberコンストラクタに数値として解釈できないオブジェクト(たとえば "A" などの文字列)を渡すと、NaNを返します。

var two = new Number(2);

NumberオブジェクトのインスタンスとJavaScriptの数値は厳密には等しくないことに注意してください。

new Number(1) ==  1; // true
// しかし
new Number(1) === 1; // false
 
/*
 * なぜならば
 * typeof new Number(1) == 'object' かつ
 * typeof 1             == 'number' なので
 */

ただし、プリミティブ型の数値に対して、メソッド呼び出しをすると、自動的に Number オブジェクトが作られます。

また、Number 関数により、他の型の値をプリミティブ型の数値に型変換します。

var two = Number("2");

プロパティ[編集]

JavaScriptで表すことのできる最大の数
JavaScriptで表すことのできる最小の数
非数
負の無限大
正の無限大 (Infinity)
Numberオブジェクトのプロトタイプ

メソッド[編集]

  • toExponential
  • toFixed
  • toLocaleString
  • toPrecision
  • toString
このオブジェクトの文字列表現を返す。
  • valueOf
このオブジェクトのプリミティブ値を返す。

関連項目[編集]

  • Math - 数学関数と定数
このページ「JavaScript/Number」は、書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にノートへどうぞ。