From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../global_objects/number/epsilon/index.html | 69 ++++++++ .../reference/global_objects/number/index.html | 183 ++++++++++++++++++++ .../global_objects/number/isfinite/index.html | 88 ++++++++++ .../global_objects/number/isinteger/index.html | 97 +++++++++++ .../global_objects/number/isnan/index.html | 100 +++++++++++ .../global_objects/number/issafeinteger/index.html | 97 +++++++++++ .../number/max_safe_integer/index.html | 81 +++++++++ .../global_objects/number/max_value/index.html | 66 +++++++ .../number/min_safe_integer/index.html | 64 +++++++ .../global_objects/number/min_value/index.html | 66 +++++++ .../reference/global_objects/number/nan/index.html | 63 +++++++ .../number/negative_infinity/index.html | 84 +++++++++ .../global_objects/number/number/index.html | 62 +++++++ .../global_objects/number/parsefloat/index.html | 88 ++++++++++ .../global_objects/number/parseint/index.html | 82 +++++++++ .../number/positive_infinity/index.html | 83 +++++++++ .../global_objects/number/toexponential/index.html | 91 ++++++++++ .../global_objects/number/tofixed/index.html | 97 +++++++++++ .../number/tolocalestring/index.html | 191 +++++++++++++++++++++ .../global_objects/number/toprecision/index.html | 92 ++++++++++ .../global_objects/number/tosource/index.html | 39 +++++ .../global_objects/number/tostring/index.html | 99 +++++++++++ .../global_objects/number/valueof/index.html | 69 ++++++++ 23 files changed, 2051 insertions(+) create mode 100644 files/ja/web/javascript/reference/global_objects/number/epsilon/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/isfinite/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/isinteger/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/isnan/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/issafeinteger/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/max_safe_integer/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/max_value/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/min_safe_integer/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/min_value/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/nan/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/negative_infinity/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/number/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/parsefloat/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/parseint/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/positive_infinity/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/toexponential/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/tofixed/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/tolocalestring/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/toprecision/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/tosource/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/tostring/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/number/valueof/index.html (limited to 'files/ja/web/javascript/reference/global_objects/number') diff --git a/files/ja/web/javascript/reference/global_objects/number/epsilon/index.html b/files/ja/web/javascript/reference/global_objects/number/epsilon/index.html new file mode 100644 index 0000000000..c95a929135 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/epsilon/index.html @@ -0,0 +1,69 @@ +--- +title: Number.EPSILON +slug: Web/JavaScript/Reference/Global_Objects/Number/EPSILON +tags: + - ECMAScript 2015 + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/EPSILON +--- +
{{JSRef}}
+ +

Number.EPSILON プロパティは、1 から 1 より大きな浮動小数点の最小値の差を表します。

+ +

この静的なプロパティにアクセスするために {{jsxref("Number")}} オブジェクトを生成する必要はありません (Number.EPSILON を使用してください)。

+ +
{{EmbedInteractiveExample("pages/js/number-epsilon.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

解説

+ +

EPSILON プロパティは およそ 2.2204460492503130808472633361816E-16、または 2-52 の値を持っています。

+ +

+ +

同等なことをテストする

+ +
x = 0.2;
+y = 0.3;
+z = 0.1;
+equal = (Math.abs(x - y + z) < Number.EPSILON);
+
+ +

ポリフィル

+ +
if (Number.EPSILON === undefined) {
+    Number.EPSILON = Math.pow(2, -52);
+}
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.epsilon', 'Number.EPSILON')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.EPSILON")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/index.html b/files/ja/web/javascript/reference/global_objects/number/index.html new file mode 100644 index 0000000000..dbac6b734c --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/index.html @@ -0,0 +1,183 @@ +--- +title: Number +slug: Web/JavaScript/Reference/Global_Objects/Number +tags: + - JavaScript + - Number + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number +--- +
{{JSRef}}
+ +

Numberプリミティブラッパーオブジェクトで、 37-9.25 のような数値を表現したり操作したりするために使用されます。

+ +

Number コンストラクターは、数値を扱うための定数とメソッドを含んでいます。他の型の値は Number() 関数を用いて数値に変換することができます。

+ +

JavaScript の Number 型は IEEE 754 の倍精度 64ビットバイナリ形式であり、 Java や C# の double のようなものです。これは小数点以下の数値を表すことができることを意味しますが、格納できる値にはいくつかの制限があります。 Number は小数点以下約17桁の精度しか保持できません。演算は丸め誤差の影響を受けます。 Number が保持できる最大の値は約1.8×10308です。それ以上の数値は、特殊な数値定数 {{jsxref("Infinity")}} に置き換えられます。

+ +

JavaScript コードにおける 37 のような数値リテラルは浮動小数点値であり、整数ではありません。日常的に使用される独立した整数型はありません。 (JavaScript は {{jsxref("BigInt")}} 型を持つようになりましたが、日常の利用で Number を置き換えるように設計されてはいません。 37 は Number であり、 BigInt ではありません。)

+ +

解説

+ +

関数として使用された場合、 Number(value) は文字列やその他の値を Number 型に変換します。値が変換できない場合は、 {{jsxref("NaN")}} を返します。

+ +

リテラル構文

+ +
123    // 百二十三
+123.0  // 同じ
+123 === 123.0  // true
+ +

関数構文

+ +
Number('123')  // 数値 123 を返す
+Number('123') === 123  // true
+
+Number("unicorn")  // NaN
+Number(undefined)  // NaN
+
+ +

コンストラクター

+ +
+
{{jsxref("Number/Number", "Number()")}}
+
新しい Number 値を生成します。
+
+ +

静的プロパティ

+ +
+
{{jsxref("Number.EPSILON")}}
+
数値として表される 2 個の数の最小の差です。
+
{{jsxref("Number.MAX_SAFE_INTEGER")}}
+
JavaScript における確実な整数の最大値 (253 - 1) です。
+
{{jsxref("Number.MAX_VALUE")}}
+
表現可能な正の数の最大値です。
+
{{jsxref("Number.MIN_SAFE_INTEGER")}}
+
JavaScript における確実な整数の最小値 (-(253 - 1)) です。
+
{{jsxref("Number.MIN_VALUE")}}
+
表現可能な正の数の最小値。0 に最も近い正の数です (0 ではありません)。
+
{{jsxref("Number.NaN")}}
+
特殊な "Not a Number" (数値ではない) の値です。
+
{{jsxref("Number.NEGATIVE_INFINITY")}}
+
負の無限大を表す特別な値です。オーバーフロー時に返されます。
+
{{jsxref("Number.POSITIVE_INFINITY")}}
+
無限大を表す特別な値です。オーバーフロー時に返されます。
+
{{jsxref("Number.prototype")}}
+
Number オブジェクトへのプロパティの追加を許可します。
+
+ +

静的メソッド

+ +
+
{{jsxref("Number.isNaN()")}}
+
渡された値が NaN であれば true を返します。
+
{{jsxref("Number.isFinite()")}}
+
渡された値が有限数であるかどうかを判断します。
+
{{jsxref("Number.isInteger()")}}
+
渡された値が整数であるかどうかを判断します。
+
{{jsxref("Number.isSafeInteger()")}}
+
渡された値が確実な範囲の整数 (-(253 - 1) から 253 - 1 の間) であれば true を返します。
+
{{jsxref("Number.parseFloat()", "Number.parseFloat(string)")}}
+
値はグローバルオブジェクトの {{jsxref("parseFloat", "parseFloat()")}} と同じです。
+
{{jsxref("Number.parseInt()", "Number.parseInt(string, [radix])")}}
+
値はグローバルオブジェクトの {{jsxref("parseInt", "parseInt()")}} と同じです。
+
+ +

インスタンスメソッド

+ +
+
{{jsxref("Number.prototype.toExponential()" ,"Number.prototype.toExponential(fractionDigits)")}}
+
指数表記で数値を表す文字列を返します。
+
{{jsxref("Number.prototype.toFixed()", "Number.prototype.toFixed(digits)")}}
+
固定小数点表記で数値を表す文字列を返します。
+
{{jsxref("Number.prototype.toLocaleString()", "Number.prototype.toLocaleString([locales [, options]])")}}
+
この値を言語依存の表現で表した文字列を返します。 {{jsxref("Object.prototype.toLocaleString()")}} メソッドを上書きします。
+
{{jsxref("Number.prototype.toPrecision()", "Number.prototype.toPrecision(precision)")}}
+
指定された精度で、固定小数点表記または指数表記で数値で表す文字列を返します。
+
{{jsxref("Number.prototype.toString()", "Number.prototype.toString([radix])")}}
+
指定された基数を元に、指定されたオブジェクトを表す文字列を返します。 {{jsxref("Object.prototype.toString()")}} メソッドを上書きします。
+
{{jsxref("Number.prototype.valueOf()")}}
+
指定されたオブジェクトのプリミティブ値を返します。 {{jsxref("Object.prototype.valueOf()")}} メソッドを上書きします。
+
+ +

+ +

Number オブジェクトを使用して変数に値を代入する

+ +

以下の例では、Number オブジェクトのプロパティを使用して、いくつかの数の変数に値を代入します。

+ +
const biggestNum     = Number.MAX_VALUE
+const smallestNum    = Number.MIN_VALUE
+const infiniteNum    = Number.POSITIVE_INFINITY
+const negInfiniteNum = Number.NEGATIVE_INFINITY
+const notANum        = Number.NaN
+
+ +

Number の整数の範囲

+ +

次の例は、Number オブジェクトで表現可能な最小の整数値と最大の整数値です (詳細は、ECMAScript 標準の 6.1.6 The Number Type の章を参照してください)。

+ +
const biggestInt  = Number.MAX_SAFE_INTEGER  //  (253 - 1) =>  9007199254740991
+const smallestInt = Number.MIN_SAFE_INTEGER  // -(253 - 1) => -9007199254740991
+ +

JSON にシリアライズされたデータを解析する場合、整数値がこの範囲を超えていると、 JSON パーサーがこの値を Number 型に変換したときに信頼できない値になります。

+ +

可能な回避策として、代わりに {{jsxref("String")}} を使用してください。

+ +

大きい数値は {{jsxref("BigInt")}} 型を用いて表すことができます。

+ +

Number を使用して Date オブジェクトを変換する

+ +

以下の例は、 Number を関数として用いて、{{jsxref("Date")}} オブジェクトを数値に変換します:

+ +
let d = new Date('December 17, 1995 03:24:00')
+console.log(Number(d))
+
+ +

これは、コンソールに "819199440000" を出力します。

+ +

数字や null を数値に変換する

+ +
Number('123')     // 123
+Number('123') === 123 /// true
+Number('12.3')    // 12.3
+Number('12.00')   // 12
+Number('123e-1')  // 12.3
+Number('')        // 0
+Number(null)      // 0
+Number('0x11')    // 17
+Number('0b11')    // 3
+Number('0o11')    // 9
+Number('foo')     // NaN
+Number('100a')    // NaN
+Number('-Infinity') //-Infinity
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number-objects', 'Number')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/isfinite/index.html b/files/ja/web/javascript/reference/global_objects/number/isfinite/index.html new file mode 100644 index 0000000000..f1be47f244 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/isfinite/index.html @@ -0,0 +1,88 @@ +--- +title: Number.isFinite() +slug: Web/JavaScript/Reference/Global_Objects/Number/isFinite +tags: + - JavaScript + - Method + - Number + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isFinite +--- +
{{JSRef}}
+ +

Number.isFinite() メソッドは、渡された値が有限数であるかどうかを判断します。

+ +
{{EmbedInteractiveExample("pages/js/number-isfinite.html")}}
+ + + +

構文

+ +
Number.isFinite(value)
+ +

引数

+ +
+
value
+
有限数かどうかテストされる値。
+
+ +

返値

+ +

与えられた値が有限数かどうかを示す {{jsxref("Boolean")}}。

+ +

解説

+ +

{{jsxref("isFinite", "isFinite()")}} グローバル関数と比較すると、このメソッドは強制的に引数を数値に変換しません。すなわち、数値型の値で、それが有限数でもある場合のみ、 true を返すことを意味します。

+ +

+ +

isFinite の使用

+ +
Number.isFinite(Infinity);  // false
+Number.isFinite(NaN);       // false
+Number.isFinite(-Infinity); // false
+
+Number.isFinite(0);         // true
+Number.isFinite(2e64);      // true
+
+Number.isFinite('0');       // false, would've been true with
+                            // global isFinite('0')
+Number.isFinite(null);      // false, would've been true with
+                            // global isFinite(null)
+
+ +

ポリフィル

+ +
if (Number.isFinite === undefined) Number.isFinite = function(value) {
+    return typeof value === 'number' && isFinite(value);
+}
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.isfinite', 'Number.isInteger')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.isFinite")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/isinteger/index.html b/files/ja/web/javascript/reference/global_objects/number/isinteger/index.html new file mode 100644 index 0000000000..a942b50e51 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/isinteger/index.html @@ -0,0 +1,97 @@ +--- +title: Number.isInteger() +slug: Web/JavaScript/Reference/Global_Objects/Number/isInteger +tags: + - JavaScript + - Method + - Number + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isInteger +--- +
{{JSRef}}
+ +

Number.isInteger() メソッドは渡された値が整数かどうかを判定します。

+ +
{{EmbedInteractiveExample("pages/js/number-isinteger.html")}}
+ + + +

構文

+ +
Number.isInteger(value)
+ +

引数

+ +
+
value
+
整数かどうかを判定される値です。
+
+ +

返値

+ +

渡された値が整数かどうかを示す {{jsxref("Boolean")}} です。

+ +

解説

+ +

指定された値が整数の場合は true を返し、そうでない場合は false を返します。{{jsxref("NaN")}} もしくは {{jsxref("Infinity")}} の場合も false を返します。

+ +

+ +

isInteger の使用

+ +
Number.isInteger(0);         // true
+Number.isInteger(1);         // true
+Number.isInteger(-100000);   // true
+Number.isInteger(99999999999999999999999); // true
+
+Number.isInteger(0.1);       // false
+Number.isInteger(Math.PI);   // false
+
+Number.isInteger(NaN);       // false
+Number.isInteger(Infinity);  // false
+Number.isInteger(-Infinity); // false
+Number.isInteger('10');      // false
+Number.isInteger(true);      // false
+Number.isInteger(false);     // false
+Number.isInteger([1]);       // false
+
+Number.isInteger(5.0);       // true
+Number.isInteger(5.000000000000001); // false
+Number.isInteger(5.0000000000000001); // true
+
+ +

ポリフィル

+ +
Number.isInteger = Number.isInteger || function(value) {
+  return typeof value === 'number' &&
+    isFinite(value) &&
+    Math.floor(value) === value;
+};
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.isinteger', 'Number.isInteger')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.isInteger")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/isnan/index.html b/files/ja/web/javascript/reference/global_objects/number/isnan/index.html new file mode 100644 index 0000000000..2077262cf1 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/isnan/index.html @@ -0,0 +1,100 @@ +--- +title: Number.isNaN() +slug: Web/JavaScript/Reference/Global_Objects/Number/isNaN +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Number + - isNaN +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN +--- +
{{JSRef}}
+ +

Number.isNaN() メソッドは、渡された値が {{jsxref("NaN")}} であり、かつその型が {{jsxref("Number")}} であるかどうかを判断します。元となるグローバルの {{jsxref("isNaN", "isNaN()")}} よりも堅牢な版です。

+ +
{{EmbedInteractiveExample("pages/js/number-isnan.html", "taller")}}
+ + + +

構文

+ +
Number.isNaN(value)
+ +

引数

+ +
+
value
+
{{jsxref("NaN")}} かどうかテストされる値です。
+
+ +

返値

+ +

与えられた値が {{jsxref("NaN")}} であり、かつその型が {{jsxref("Number")}} である場合は true、それ以外の場合は false です。

+ +

解説

+ +

{{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} と {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}} の等価演算子ではどちらも、 {{jsxref("Global_Objects/NaN", "NaN")}} が {{jsxref("Global_Objects/NaN", "NaN")}} であるかどうかを検査すると false と評価されてしまうため、 Number.isNaN() 関数が必要となります。この状況は、 JavaScript においてあり得る他のすべての値の比較と異なります。

+ +

グローバルの {{jsxref("Global_Objects/isNaN", "isNaN()")}} 関数とは異なり、 Number.isNaN() は強制的に引数が数値に変換される問題の影響をうけません。これは、通常 {{jsxref("NaN")}} に変換されるが実際には {{jsxref("NaN")}} ではない値が、安全に渡されることを意味します。つまりこの関数は、数値型であり、かつ {{jsxref("NaN")}} である値が渡されたときのみ、 true を返すということです。

+ +

+ +

isNaN の使用

+ +
Number.isNaN(NaN);        // true
+Number.isNaN(Number.NaN); // true
+Number.isNaN(0 / 0);      // true
+
+// たとえば、以下の値を isNaN() グローバル関数に渡すと true が返される
+Number.isNaN('NaN');      // false
+Number.isNaN(undefined);  // false
+Number.isNaN({});         // false
+Number.isNaN('blabla');   // false
+
+// 以下はすべて false を返す
+Number.isNaN(true);
+Number.isNaN(null);
+Number.isNaN(37);
+Number.isNaN('37');
+Number.isNaN('37.37');
+Number.isNaN('');
+Number.isNaN(' ');
+
+ +

ポリフィル

+ +

以下の例が動作するのは、 NaN が JavaScript で唯一、自分自身と比較して等しくない値だからです。

+ +
Number.isNaN = Number.isNaN || function isNaN(input) {
+    return typeof input === 'number' && input !== input;
+}
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}}
+ +

ブラウザーの互換性

+ + + +
{{Compat("javascript.builtins.Number.isNaN")}}
+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/issafeinteger/index.html b/files/ja/web/javascript/reference/global_objects/number/issafeinteger/index.html new file mode 100644 index 0000000000..5e70719391 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/issafeinteger/index.html @@ -0,0 +1,97 @@ +--- +title: Number.isSafeInteger() +slug: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger +tags: + - ECMAScript6 + - JavaScript + - Method + - Number +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger +--- +
{{JSRef}}
+ +

Number.isSafeInteger() メソッドは、指定された値が安全な整数であるかどうかを判定します。

+ +
{{EmbedInteractiveExample("pages/js/number-issafeinteger.html")}}
+ + + +

安全な整数とは、以下のような整数です。

+ + + +

例えば、253 - 1 は安全な整数です。正確に表現することができ、他の整数は、どの IEEE-754 丸めモードの下で丸めたものにもなっていません。対照的に、253 は安全な整数ではありません。これは IEEE-754 で正確に表現されますが、整数値 253 + 1 が直接 IEEE-754 では表現できず、四捨五入や切り捨ての丸めによって 253 になるからです。安全な整数は -(253 - 1) 以上 253 - 1 以下の整数値です (± 9007199254740991 または ± 9,007,199,254,740,991 です)。

+ +

完全な精度で ~9 兆より大きい値や小さい値を扱うには、任意精度演算ライブラリを使用する必要があります。数値の浮動小数点表現の詳細については、 What Every Programmer Needs to Know about Floating Point Arithmetic を参照してください。s

+ +

巨大な整数値については、 {{jsxref("BigInt")}} 型を使用することを検討してください。

+ +

構文

+ +
Number.isSafeInteger(testValue)
+
+ +

引数

+ +
+
testValue
+
安全な整数かどうかをテストする値です。
+
+ +

返値

+ +

{{jsxref("Boolean")}} で、与えられた数値が安全な整数であるかどうかを示します。

+ +

Polyfill

+ +
Number.isSafeInteger = Number.isSafeInteger || function (value) {
+   return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
+};
+
+ +

+ +

isSafeInteger の使用

+ +
Number.isSafeInteger(3);                    // true
+Number.isSafeInteger(Math.pow(2, 53));      // false
+Number.isSafeInteger(Math.pow(2, 53) - 1);  // true
+Number.isSafeInteger(NaN);                  // false
+Number.isSafeInteger(Infinity);             // false
+Number.isSafeInteger('3');                  // false
+Number.isSafeInteger(3.1);                  // false
+Number.isSafeInteger(3.0);                  // true
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.issafeinteger', 'Number.isSafeInteger')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.isSafeInteger")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/max_safe_integer/index.html b/files/ja/web/javascript/reference/global_objects/number/max_safe_integer/index.html new file mode 100644 index 0000000000..99d40495e2 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/max_safe_integer/index.html @@ -0,0 +1,81 @@ +--- +title: Number.MAX_SAFE_INTEGER +slug: Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER +tags: + - ECMAScript 2015 + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER +--- +
{{JSRef}}
+ +

Number.MAX_SAFE_INTEGER 定数は、JavaScript における安全な整数の最大値 (253 - 1) を表します。

+ +

もっと大きな整数には、 {{jsxref("BigInt")}} を使用することを検討してください。

+ +
{{EmbedInteractiveExample("pages/js/number-maxsafeinteger.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

解説

+ +

MAX_SAFE_INTEGER 定数は 9007199254740991 (9,007,199,254,740,991) である値です。その数である理由は JavaScript が IEEE 754 で指定されたとおり倍精度浮動小数点型数値を使用し安全に -(253 - 1)253 - 1 との間の数を表すことができるからです。

+ +

この文脈で示している安全とは、整数を正確に表現し、正しく比較する能力を指します。たとえば、 Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 は、数学的には不正確ですが true と評価されます。詳細については {{jsxref("Number.isSafeInteger()")}} を見てください。

+ +

このフィールドは古いブラウザーには存在しません。 Math.max(Number.MAX_SAFE_INTEGER, 2) のように存在を確認せずに使用すると、 NaN のような望ましくない結果が得られます。

+ +

MAX_SAFE_INTEGER は {{jsxref("Number")}} の静的なプロパティなので、自ら生成した {{jsxref("Number")}} オブジェクトのプロパティとしてではなく、常に Number.MAX_SAFE_INTEGER として使うようにしてください。

+ +

Polyfill

+ +
if (!Number.MAX_SAFE_INTEGER) {
+    Number.MAX_SAFE_INTEGER = 9007199254740991; // Math.pow(2, 53) - 1;
+}
+
+ +

+ +

MAX_SAFE_INTEGER の返値

+ +
Number.MAX_SAFE_INTEGER; // 9007199254740991
+
+ +

安全な整数よりも大きな数値

+ +

浮動小数点の場合、ゼロのような正規の精度以下の場合を除いて、実際には10進数の末尾の "1" が値となるため、これは2を返します。

+ +
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 2
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.max_safe_integer', 'Number.MAX_SAFE_INTEGER')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.MAX_SAFE_INTEGER")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/max_value/index.html b/files/ja/web/javascript/reference/global_objects/number/max_value/index.html new file mode 100644 index 0000000000..b4aea1a161 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/max_value/index.html @@ -0,0 +1,66 @@ +--- +title: Number.MAX_VALUE +slug: Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE +tags: + - JavaScript + - Number + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE +--- +
{{JSRef}}
+ +

Number.MAX_VALUE プロパティは、 JavaScript において表すことが可能な最大の数値です。

+ +
{{EmbedInteractiveExample("pages/js/number-maxvalue.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

解説

+ +

MAX_VALUE プロパティはおよそ 1.79E+308、または 21024 の値です。MAX_VALUE よりも大きな数値は {{jsxref("Infinity")}} で表されます。

+ +

MAX_VALUE は {{jsxref("Number")}} オブジェクトの静的なプロパティですので、 生成した {{jsxref("Number")}} オブジェクトのプロパティとしてではなく、常に Number.MAX_VALUE として使用してください。

+ +

+ +

MAX_VALUE の使用

+ +

以下のコードは、2 つの数値を掛け算しています。その結果が MAX_VALUE より小さいか等しい場合は、func1 関数が呼び出されます。それ以外の場合は、func2 関数が呼び出されます。

+ +
if (num1 * num2 >= Number.MAX_VALUE) {
+  func1();
+} else {
+  func2();
+}
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.max_value', 'Number.MAX_VALUE')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.MAX_VALUE")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/min_safe_integer/index.html b/files/ja/web/javascript/reference/global_objects/number/min_safe_integer/index.html new file mode 100644 index 0000000000..7b3eb2df36 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/min_safe_integer/index.html @@ -0,0 +1,64 @@ +--- +title: Number.MIN_SAFE_INTEGER +slug: Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER +tags: + - ECMAScript 2015 + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER +--- +
{{JSRef}}
+ +

Number.MIN_SAFE_INTEGER 定数は、JavaScript における安全な整数の最小値 (-(253 - 1)) を表します。

+ +

これよりも小さな整数値を表す場合は、 {{jsxref("BigInt")}} を使用することを検討してください。

+ +
{{EmbedInteractiveExample("pages/js/number-min-safe-integer.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

解説

+ +

MIN_SAFE_INTEGER 定数は -9007199254740991 (-9,007,199,254,740,991 またはおよそ -9000 兆 ) である値です。その数である理由は JavaScript が IEEE 754 で指定されたとおり倍精度浮動小数点型数値を使用し安全に -(253 - 1)253 - 1 との間の数を表すことができるからです。詳しくは {{jsxref("Number.isSafeInteger()")}} を見てください。

+ +

MIN_SAFE_INTEGER 定数は {{jsxref("Number")}} オブジェクトの静的なプロパティなので、自ら生成した {{jsxref("Number")}} オブジェクトのプロパティとしてではなく、常に、Number.MIN_SAFE_INTEGER として使用するようにしてください。

+ +

+ +

MIN_SAFE_INTEGER の使用

+ +
Number.MIN_SAFE_INTEGER // -9007199254740991
+-(Math.pow(2, 53) - 1)  // -9007199254740991
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.min_safe_integer', 'Number.MIN_SAFE_INTEGER')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.MIN_SAFE_INTEGER")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/min_value/index.html b/files/ja/web/javascript/reference/global_objects/number/min_value/index.html new file mode 100644 index 0000000000..5df4e59f6b --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/min_value/index.html @@ -0,0 +1,66 @@ +--- +title: Number.MIN_VALUE +slug: Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE +--- +
{{JSRef}}
+ +

Number.MIN_VALUE プロパティは、 JavaScript において表すことが可能な最小の正の数値です。

+ +
{{EmbedInteractiveExample("pages/js/number-min-value.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

解説

+ +

MIN_VALUE プロパティは JavaScript が表すことができる、0 に最も近い数であり、最大の負の数ではありません。

+ +

Number.MIN_VALUE5e-324、すなわち浮動小数点の精度で表すことができる最も小さな正の数、つまり 0 にできるだけ違い数です。 MIN_VALUE より小さな値 ("アンダーフローする値") は 0 に変換されます。

+ +

MIN_VALUE は {{jsxref("Number")}} オブジェクトの静的なプロパティですので、 生成した {{jsxref("Number")}} オブジェクトのプロパティとしてではなく、常に Number.MIN_VALUE として使用してください。

+ +

+ +

MIN_VALUE の使用

+ +

以下のコードは、2 つの数値を割り算しています。その結果が MIN_VALUE より大きいか等しい場合は、func1 関数が呼び出されます。それ以外の場合は、func2 関数が呼び出されます。

+ +
if (num1 / num2 >= Number.MIN_VALUE) {
+  func1();
+} else {
+  func2();
+}
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.min_value', 'Number.MIN_VALUE')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.MIN_VALUE")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/nan/index.html b/files/ja/web/javascript/reference/global_objects/number/nan/index.html new file mode 100644 index 0000000000..f28ee1e457 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/nan/index.html @@ -0,0 +1,63 @@ +--- +title: Number.NaN +slug: Web/JavaScript/Reference/Global_Objects/Number/NaN +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/NaN +--- +
{{JSRef}}
+ +

Number.NaN非数 (Not-A-Number) を表す値です。これは {{jsxref("NaN")}} と同じです。

+ +
{{EmbedInteractiveExample("pages/js/number-nan.html")}}
+ + + +

この静的プロパティにアクセスするために {{jsxref("Number")}} オブジェクトを生成する必要はありません (Number.NaN を使用してください)。

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

+ +

値が数値であるかどうかのチェック

+ +
function sanitise(x) {
+  if (isNaN(x)) {
+    return Number.NaN;
+  }
+  return x;
+}
+ +

NaN に対するテスト

+ +

NaN に対するテストNaN のページで参照してください。

+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.nan', 'Number.NaN')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.NaN")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/negative_infinity/index.html b/files/ja/web/javascript/reference/global_objects/number/negative_infinity/index.html new file mode 100644 index 0000000000..16a57a9f91 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/negative_infinity/index.html @@ -0,0 +1,84 @@ +--- +title: Number.NEGATIVE_INFINITY +slug: Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY +tags: + - JavaScript + - Number + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY +--- +
{{JSRef}}
+ +

Number.NEGATIVE_INFINITY プロパティは負の無限大を表す値です。

+ +
{{EmbedInteractiveExample("pages/js/number-negative-infinity.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

解説

+ +

Number.NEGATIVE_INFINITY の値は、グローバルオブジェクトの {{jsxref("Infinity")}} プロパティの負の値と同じです。

+ +

この値は数学的な無限大とは少々異なった振る舞いをします。

+ + + +

成功した場合に有限数を返す関数がエラーである状態を示すために、Number.NEGATIVE_INFINITY プロパティを使いたいかもしれません。しかし、そのような場合は、 {{jsxref("isFinite")}} の方がより適しているであろうことに留意してください。

+ +

NEGATIVE_INFINITY は {{jsxref("Number")}} の静的プロパティですので、作成した {{jsxref("Number")}} オブジェクトのプロパティとしてではなく、常に Number.NEGATIVE_INFINITY として扱ってください。

+ +

+ +

NEGATIVE_INFINITY の使用

+ +

以下の例では、変数 smallNumber に最小値よりも小さな値が代入されています。{{jsxref("Statements/if...else", "if")}} ステートメントが実行されたとき、smallNumber-Infinity の値を持つので、処理が継続する前に smallNumber により扱いやすい値がセットされます。

+ +
var smallNumber = (-Number.MAX_VALUE) * 2;
+
+if (smallNumber === Number.NEGATIVE_INFINITY) {
+  smallNumber = returnFinite();
+}
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.negative_infinity', 'Number.NEGATIVE_INFINITY')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.NEGATIVE_INFINITY")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/number/index.html b/files/ja/web/javascript/reference/global_objects/number/number/index.html new file mode 100644 index 0000000000..94a5d01d33 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/number/index.html @@ -0,0 +1,62 @@ +--- +title: Number() コンストラクター +slug: Web/JavaScript/Reference/Global_Objects/Number/Number +tags: + - Constructor + - JavaScript + - Number + - Reference + - コンストラクター +translation_of: Web/JavaScript/Reference/Global_Objects/Number/Number +--- +
{{JSRef}}
+ +

Number() コンストラクターは、 {{jsxref("Number")}} オブジェクトを生成します。

+ +

構文

+ +
new Number(value)
+
+ +

引数

+ +
+
value
+
作成されるオブジェクトの数値による値です。
+
+ +

+ +
const a = new Number('123'); // a === 123 is false
+const b = Number('123');     // b === 123 is true
+a instanceof Number;         // is true
+b instanceof Number;         // is false
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number-constructor', 'Number constructor')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.Number")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/parsefloat/index.html b/files/ja/web/javascript/reference/global_objects/number/parsefloat/index.html new file mode 100644 index 0000000000..c30f9eabcf --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/parsefloat/index.html @@ -0,0 +1,88 @@ +--- +title: Number.parseFloat() +slug: Web/JavaScript/Reference/Global_Objects/Number/parseFloat +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Number + - メソッド +translation_of: Web/JavaScript/Reference/Global_Objects/Number/parseFloat +--- +
{{JSRef}}
+ +

Number.parseFloat() メソッドは、引数を解釈して浮動小数点値を返します。引数の数値が解釈できない場合は、 {{jsxref("NaN")}} を返します。

+ +
{{EmbedInteractiveExample("pages/js/number-parsefloat.html")}}
+ + + +

構文

+ +
Number.parseFloat(string)
+ +

引数

+ +
+
string
+
解析する値。この引数が文字列でない場合、抽象操作 ToString を用いて文字列に変換されます。この引数では先頭の{{glossary("whitespace", "ホワイトスペース")}}は無視されます。
+
+ +

返値

+ +

指定された string を解釈した浮動小数点値です。

+ +

または、最初のホワイトスペース以外の文字が数値に変換できなかった場合は {{jsxref("NaN")}} です。

+ +

ポリフィル

+ +
if (Number.parseFloat === undefined) {
+  Number.parseFloat = parseFloat;
+}
+
+ +

+ +

Number.parseFloat と parseFloat

+ +

このメソッドは、グローバルの {{jsxref("parseFloat", "parseFloat()")}} 関数と同じ機能を持っています。

+ +
Number.parseFloat === parseFloat; // true
+
+ +

このメソッドも ECMAScript 2015 の一部です。 (この目的は、グローバルのモジュール化にあります。)

+ +

さらなる詳細と例は {{jsxref("parseFloat", "parseFloat()")}} を参照してください。

+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.parsefloat', 'Number.parseFloat')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.parseFloat")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/parseint/index.html b/files/ja/web/javascript/reference/global_objects/number/parseint/index.html new file mode 100644 index 0000000000..3e07c4e573 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/parseint/index.html @@ -0,0 +1,82 @@ +--- +title: Number.parseInt() +slug: Web/JavaScript/Reference/Global_Objects/Number/parseInt +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Number + - メソッド +translation_of: Web/JavaScript/Reference/Global_Objects/Number/parseInt +--- +
{{JSRef}}
+ +

Number.parseInt() は、文字列の引数を解析し、指定された基数の整数値を返します。

+ +
{{EmbedInteractiveExample("pages/js/number-parseint.html", "taller")}}
+ + + +

構文

+ +
Number.parseInt(string,[ radix])
+ +

引数

+ +
+
+
string
+
解析する値。この引数が文字列でない場合、抽象操作 ToString を用いて文字列に変換されます。この引数では先頭の{{glossary("whitespace", "ホワイトスペース")}}は無視されます。
+
radix {{optional_inline}}
+
2 から 36 までの整数で、 string基数 (数学的記数法の底) を表します。これは既定値が 10 ではないので注意してください。
+
+
+ +

返値

+ +

指定された string を解析した整数値です。

+ +

radix2 よりも小さいか 36 よりも大きい、または最初のホワイトスペース以外の文字が数値に変換できない場合は {{jsxref("NaN")}} が返されます。

+ +

解説

+ +

このメソッドは、グローバルの {{jsxref("parseInt", "parseInt()")}} 関数と同じ機能です。

+ +
Number.parseInt === parseInt // true
+ +

また、これは ECMAScript 2015 の一部です (グローバルのモジュール化のため)。詳細や例は {{jsxref("parseInt", "parseInt()")}} を参照してください。

+ +

ポリフィル

+ +
if (Number.parseInt === undefined) {
+    Number.parseInt = window.parseInt
+}
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.parseint', 'Number.parseInt')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.parseInt")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/positive_infinity/index.html b/files/ja/web/javascript/reference/global_objects/number/positive_infinity/index.html new file mode 100644 index 0000000000..9d3afc9966 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/positive_infinity/index.html @@ -0,0 +1,83 @@ +--- +title: Number.POSITIVE_INFINITY +slug: Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY +tags: + - JavaScript + - Number + - Property +translation_of: Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY +--- +
{{JSRef}}
+ +

Number.POSITIVE_INFINITY プロパティは正の無限大を表す値です。

+ +
{{EmbedInteractiveExample("pages/js/number-positive-infinity.html")}}
+ + + +
{{js_property_attributes(0, 0, 0)}}
+ +

解説

+ +

Number.POSITIVE_INFINITY の値はグローバルオブジェクトの {{jsxref("Infinity")}} プロパティの値と同じです。

+ +

この値は数学的な無限大とは少々異なった振る舞いをします。

+ + + +

成功した場合に有限数を返す関数がエラーである状態を示すために、Number.POSITIVE_INFINITY プロパティを使いたいかもしれません。しかし、そのような場合は、 {{jsxref("isFinite")}} の方がより適しているであろうことに留意してください。

+ +

POSITIVE_INFINITY は {{jsxref("Number")}} の静的プロパティですので、作成した {{jsxref("Number")}} オブジェクトのプロパティとしてではなく、常に Number.POSITIVE_INFINITY として扱ってください。

+ +

+ +

POSITIVE_INFINITY の使用

+ +

以下の例では、変数 bigNumber に最大値よりも大きな値が代入されています。{{jsxref("Statements/if...else", "if")}} ステートメントが実行されるとき、bigNumberInfinity の値を持つので、処理が継続する前に bigNumber により扱いやすい値がセットされます。

+ +
var bigNumber = Number.MAX_VALUE * 2;
+
+if (bigNumber == Number.POSITIVE_INFINITY) {
+  bigNumber = returnFinite();
+}
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.positive_infinity', 'Number.POSITIVE_INFINITY')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.POSITIVE_INFINITY")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/toexponential/index.html b/files/ja/web/javascript/reference/global_objects/number/toexponential/index.html new file mode 100644 index 0000000000..549005d33a --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/toexponential/index.html @@ -0,0 +1,91 @@ +--- +title: Number.prototype.toExponential() +slug: Web/JavaScript/Reference/Global_Objects/Number/toExponential +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toExponential +--- +
{{JSRef}}
+ +

toExponential() メソッドは {{jsxref("Number")}} オブジェクトを指数表記で表した文字列を返します。

+ +
{{EmbedInteractiveExample("pages/js/number-toexponential.html")}}
+ + + +

構文

+ +
numObj.toExponential([fractionDigits])
+ +

引数

+ +
+
fractionDigits
+
任意です。小数点の後の桁数を指定する整数です。既定値はその数を表すのに必要な数の桁です。
+
+ +

返値

+ +

{{jsxref("Number")}} オブジェクトを、指数表記 (小数点前は 1 桁、小数点の後は fractionDigits によって指定された桁で切り捨て) で表した文字列です。

+ +

例外

+ +
+
{{jsxref("RangeError")}}
+
fractionDigits が小さすぎたり大きすぎたりした場合。 0 以上 20 以下の値では {{jsxref("RangeError")}} が発生しません。実装によっては、より大きな値や小さな値に対応しているかもしれません。
+
{{jsxref("TypeError")}}
+
このメソッドが {{jsxref("Number")}} ではないオブジェクトに対して呼び出された場合。
+
+ +

解説

+ +

fractionDigits 引数が省略された場合、小数点の後の桁数は、その値を特定するのに必要な桁数になります。

+ +

toExponential メソッドを 1 つの数値リテラル、または、指数も小数点もない数値リテラルに対して使用する場合、ドットが小数点として解釈されることを防ぐために、メソッド呼び出しに先立つドットの前に空白を置いてください。

+ +

引数 fractionDigits で指定された桁よりも多くの桁を持っている数の場合、その数は、fractionDigits の桁で表すことができる最も近い数で表されます。{{jsxref("Number.prototype.toFixed", "toFixed()")}} メソッドの説明における概数表現の説明を参照してください。それは、toExponential メソッドにも適用されます。

+ +

+ +

toExponential の使用

+ +
var numObj = 77.1234;
+
+console.log(numObj.toExponential());  // 7.71234e+1 を表示
+console.log(numObj.toExponential(4)); // 7.7123e+1 を表示
+console.log(numObj.toExponential(2)); // 7.71e+1 を表示
+console.log(77.1234.toExponential()); // 7.71234e+1 を表示
+console.log(77 .toExponential());     // 7.7e+1 を表示
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.prototype.toexponential', 'Number.prototype.toExponential')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.toExponential")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/tofixed/index.html b/files/ja/web/javascript/reference/global_objects/number/tofixed/index.html new file mode 100644 index 0000000000..e14ff12e89 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/tofixed/index.html @@ -0,0 +1,97 @@ +--- +title: Number.prototype.toFixed() +slug: Web/JavaScript/Reference/Global_Objects/Number/toFixed +tags: + - JavaScript + - Method + - Number + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toFixed +--- +
{{JSRef}}
+ +

toFixed() メソッドは、数を固定小数点表記を用いて整形します。

+ +
{{EmbedInteractiveExample("pages/js/number-tofixed.html")}}
+ + + +

構文

+ +
numObj.toFixed([digits])
+ +

引数

+ +
+
digits {{optional_inline}}
+
小数点の後に現れる桁の数です。これは 0 以上 20 以下の値、実装によっては、さらに広い値の範囲をサポートしているかもしれません。この引数が省略されると、それは 0 として扱われます。
+
+ +

返値

+ +

与えられた数値を固定小数点表記を用いて表した文字列です。

+ +

例外

+ +
+
{{jsxref("RangeError")}}
+
digits が小さすぎたり大きすぎたりした場合。 0 以上 100 以下の値では {{jsxref("RangeError")}} が発生しません。実装によっては、より大きな値や小さな値に対応しているかもしれません。
+
{{jsxref("TypeError")}}
+
このメソッドが {{jsxref( "Number")}} ではないオブジェクト上で実行された場合。
+
+ +

解説

+ +

toFixed()numObj の文字列表記を、指数表記を使用せず、小数点以下を正確に digits 桁として返します。必要に応じて数値は丸められ、小数部は指定された長さになるよう必要に応じて 0 で埋められます。 numObj の絶対値が 1e+21 以上の場合は、このメソッドは単純に {{jsxref("Number.prototype.toString()")}} を呼び出し、指数表記での文字列を返します。

+ +
+

警告: 浮動小数点数は、二進数で正確にすべての十進数値を表すことができるわけではありません。これは予想外の結果を導くことがあり、例えば 0.1 + 0.2 === 0.3false を返します。

+
+ +

+ +

toFixed の使用

+ +
let numObj = 12345.6789
+
+numObj.toFixed()       // '12346' を返す : 四捨五入され小数部がなくなる
+numObj.toFixed(1)      // '12345.7' を返す : 四捨五入
+numObj.toFixed(6)      // '12345.678900'を返す : 0 を追加する
+(1.23e+20).toFixed(2)  // '123000000000000000000.00' を返す
+(1.23e-10).toFixed(2)  // '0.00' を返す
+2.34.toFixed(1)        // '2.3' を返す
+2.35.toFixed(1)        // '2.4' を返す。切り上げ。
+2.55.toFixed(1)        // '2.5' を返す。切り捨て。上記警告を参照。
+-2.34.toFixed(1)       // -2.3 を返す (演算子の優先順位上、マイナスの数値リテラルは文字列を返さない)
+(-2.34).toFixed(1)     // '-2.3'
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.prototype.tofixed', 'Number.prototype.toFixed')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.toFixed")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/tolocalestring/index.html b/files/ja/web/javascript/reference/global_objects/number/tolocalestring/index.html new file mode 100644 index 0000000000..7b70d30c40 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/tolocalestring/index.html @@ -0,0 +1,191 @@ +--- +title: Number.prototype.toLocaleString() +slug: Web/JavaScript/Reference/Global_Objects/Number/toLocaleString +tags: + - Internationalization + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toLocaleString +--- +
{{JSRef}}
+ +

toLocaleString() メソッドは、この数値を表す言語依存の文字列を返します。

+ +
{{EmbedInteractiveExample("pages/js/number-tolocalestring.html")}}
+ + + +

新しい localesoptions 引数で アプリケーションは フォーマット変換で使われる言語を指定でき、関数の振る舞いをカスタマイズできます。古い実装では、localesoptions 引数は無視され、使われるロケールや返される文字列の形式は完全に実装依存です。

+ +

構文

+ +
numObj.toLocaleString([locales [, options]])
+ +

引数

+ +

どのブラウザーが locales 引数と options 引数をサポートしているか確かめるためにブラウザー実装状況セクションを調べてください。特徴検出のために例: locales 引数と options 引数をサポートしているか調べるを調べてください。

+ +
+

注意: Firefox 29 で実装されている ECMAScript 国際化 API では、locales 引数が Number.toLocaleString() メソッドに追加されました。引数が {{jsxref("undefined")}} なら、このメソッドは OS によって指定されたローカライズされた数値を返します。Firefox の以前のバージョンでは、英語の数字が返されます。この変更はすぐに修正される可能性がある下位互換性に影響を与える回帰として報告されています。({{bug(999003)}})

+
+ +
{{page('/ja/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat', 'Parameters')}}
+ +

戻り値

+ +

渡された数値を表す、言語依存の文字列です。

+ +

+ +

toLocaleString を使う

+ +

ロケールを指定しない基本的な使用で、デフォルトロケールとデフォルトオプションのフォーマットされた文字列が返されます。

+ +
var number = 3500;
+
+console.log(number.toLocaleString()); // Displays "3,500" if in U.S. English locale
+
+ +

locales 引数と options 引数をサポートしているか調べる

+ +

locales 引数と options 引数はまだすべてのブラウザーでサポートされておりません。不正な言語タグが {{jsxref("Global_Objects/RangeError", "RangeError")}} 例外で拒否される要件を使うことで、実装がすでにサポートしているかどうかを調べられます。

+ +
function toLocaleStringSupportsLocales() {
+  var number = 0;
+  try {
+    number.toLocaleString('i');
+  } catch (e) {
+    return e​.name === 'RangeError';
+  }
+  return false;
+}
+
+ +

ES5.1 以前の実装では、引数を使って toLocaleString を呼んだ場合に {{jsxref("RangeError")}} 例外を throw する必要はありませんでした。

+ +

5.1 以前の ECMAScript をサポートしているものも含めたすべてのホストで動くチェックは、直接 Number.prototype.toLocaleString の地域オプションのサポートに必要な ECMA-402 で指定された機能をテストすることで行えます。

+ +
function toLocaleStringSupportsOptions() {
+  return !!(typeof Intl == 'object' && Intl && typeof Intl.NumberFormat == 'function');
+}
+ +

上記のコードは、グローバル Intl オブジェクトが null でないことと、Intl オブジェクトが NumberFormat プロパティを持ち、それが関数であることをテストします。

+ +

locales を使う

+ +

この例ではローカライズされた数値変換のバリエーションのいくつかを示します。アプリケーションのユーザーインターフェイスで使われる言語の形式を得るために、locales 引数を用いている言語(そしておそらくいくつかのフォールバック言語)を明示することを確かめてください。

+ +
var number = 123456.789;
+
+// German uses comma as decimal separator and period for thousands
+console.log(number.toLocaleString('de-DE'));
+// → 123.456,789
+
+// Arabic in most Arabic speaking countries uses real Arabic digits
+console.log(number.toLocaleString('ar-EG'));
+// → ١٢٣٤٥٦٫٧٨٩
+
+// India uses thousands/lakh/crore separators
+console.log(number.toLocaleString('en-IN'));
+// → 1,23,456.789
+
+// the nu extension key requests a numbering system, e.g. Chinese decimal
+console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
+// → 一二三,四五六.七八九
+
+// when requesting a language that may not be supported, such as
+// Balinese, include a fallback language, in this case Indonesian
+console.log(number.toLocaleString(['ban', 'id']));
+// → 123.456,789
+
+ +

options を使う

+ +

toLocaleString によって得られる結果は options 引数を使用してカスタマイズできます。

+ +
var number = 123456.789;
+
+// request a currency format
+console.log(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
+// → 123.456,79 €
+
+// the Japanese yen doesn't use a minor unit
+console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
+// → ¥123,457
+
+// limit to three significant digits
+console.log(number.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
+// → 1,23,000
+
+// Use the host default language with options for number formatting
+var num = 30000.65;
+console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+// → "30,000.65" where English is the default language, or
+// → "30.000,65" where German is the default language, or
+// → "30 000,65" where French is the default language
+
+ +

性能

+ +

多数の数値をフォーマットするとき、{{jsxref("NumberFormat")}} オブジェクトを生成して {{jsxref("NumberFormat.format")}} プロパティによって得られる関数を使用するほうが良いです。

+ +

仕様

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
仕様書状況コメント
{{SpecName('ES3')}}{{Spec2('ES3')}}初期定義です。JavaScript 1.5 で実装されました。
{{SpecName('ES5.1', '#sec-15.7.4.3', 'Number.prototype.toLocaleString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}{{Spec2('ESDraft')}} 
{{SpecName('ES Int 1.0', '#sec-13.2.1', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int 1.0')}} 
{{SpecName('ES Int 2.0', '#sec-13.2.1', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int 2.0')}} 
{{SpecName('ES Int Draft', '#sec-Number.prototype.toLocaleString', 'Number.prototype.toLocaleString')}}{{Spec2('ES Int Draft')}} 
+ +

ブラウザー実装状況

+ + + +

{{Compat("javascript.builtins.Number.toLocaleString")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/toprecision/index.html b/files/ja/web/javascript/reference/global_objects/number/toprecision/index.html new file mode 100644 index 0000000000..61e5aae3d2 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/toprecision/index.html @@ -0,0 +1,92 @@ +--- +title: Number.prototype.toPrecision() +slug: Web/JavaScript/Reference/Global_Objects/Number/toPrecision +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision +--- +
{{JSRef}}
+ +

toPrecision() メソッドは {{jsxref("Number")}} オブジェクトを指定された精度で表した文字列を返します。

+ +
{{EmbedInteractiveExample("pages/js/number-toprecision.html")}}
+ + + +

構文

+ +
numObj.toPrecision([precision])
+ +

引数

+ +
+
precision {{optional_inline}}
+
有効数字の数を指定する整数です。
+
+ +

返値

+ +

{{jsxref("Number")}} オブジェクトを precision で指定された桁で概数化された、固定小数点数、または指数表記で表した文字列です。概数の表現方法については {{jsxref("Number.prototype.toFixed()")}} メソッドの説明を参照してください。それは toPrecision() にも適用されます。

+ +

引数 precision が省略された場合、 {{jsxref("Number.prototype.toString()")}} のように振舞います。 precision が整数の値ではない場合は、最も近い整数に概数化されます。

+ +

例外

+ +
+
{{jsxref("Global_Objects/RangeError", "RangeError")}}
+
precision が 1 と 100 の間 (両端を含む) でない場合、 {{jsxref("RangeError")}} が発生します。実装上はこの範囲を超えた値にも対応できます。 ECMA-262 では 21 桁までの精度のみを要求しています。
+
+ +

+ +

toPrecision の使用

+ +
let numObj = 5.123456
+
+console.log(numObj.toPrecision())    // logs '5.123456'
+console.log(numObj.toPrecision(5))   // logs '5.1235'
+console.log(numObj.toPrecision(2))   // logs '5.1'
+console.log(numObj.toPrecision(1))   // logs '5'
+
+numObj = 0.000123
+
+console.log(numObj.toPrecision())    // logs '0.000123'
+console.log(numObj.toPrecision(5))   // logs '0.00012300'
+console.log(numObj.toPrecision(2))   // logs '0.00012'
+console.log(numObj.toPrecision(1))   // logs '0.0001'
+
+// note that exponential notation might be returned in some circumstances
+console.log((1234.5).toPrecision(2)) // logs '1.2e+3'
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.toPrecision")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/tosource/index.html b/files/ja/web/javascript/reference/global_objects/number/tosource/index.html new file mode 100644 index 0000000000..852dd36dd3 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/tosource/index.html @@ -0,0 +1,39 @@ +--- +title: Number.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Number/toSource +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toSource +--- +

{{JSRef("Global_Objects", "Number")}}{{ Non-standard_header() }}

+ +

概要

+ +

オブジェクトのソースコードを表す文字列を返します。

+ +

構文

+ +
number.toSource()
+ +

引数

+ +

無し。

+ +

説明

+ +

toSource メソッドは以下の値を返します。:

+ + + +
function Number() {[native code]}
+
+ + + +

このメソッドは、通常、 JavaScript によって内部的に呼ばれ、コード中で明示的には呼ばれません。

+ +

参照

+ +

Object.prototype.toSource

diff --git a/files/ja/web/javascript/reference/global_objects/number/tostring/index.html b/files/ja/web/javascript/reference/global_objects/number/tostring/index.html new file mode 100644 index 0000000000..d657e2489c --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/tostring/index.html @@ -0,0 +1,99 @@ +--- +title: Number.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/Number/toString +tags: + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toString +--- +
{{JSRef}}
+ +

toString() メソッドは、指定された {{jsxref("Number")}} オブジェクトを表す文字列を返します。

+ +
{{EmbedInteractiveExample("pages/js/number-tostring.html")}}
+ + + +

構文

+ +
numObj.toString([radix])
+ +

引数

+ +
+
radix {{optional_inline}}
+
数値を表すために使われる基数を指定する、 2 から 36 までの整数です。
+
+ +

返値

+ +

指定された {{jsxref("Number")}} オブジェクトを表す文字列です。

+ +

例外

+ +
+
{{jsxref("RangeError")}}
+
toString() は、与えられた radix2 未満、または 36 を超える場合、{{jsxref("RangeError")}} が発生します。
+
+ +

解説

+ +

{{jsxref("Number")}} オブジェクトは {{jsxref("Object")}} の toString() メソッドを上書きします。つまり、 {{jsxref("Object.prototype.toString()")}} を継承しません。 {{jsxref("Number")}} オブジェクトでは、 toString() メソッドは指定された基数でオブジェクトを表した文字列を返します。

+ +

toString() メソッドはその最初の引数を解釈し、 radix で指定された基数で表した文字列を返します。 10 より大きい基数では、 9 より大きい数をアルファベットの文字で示します。例えば、16進表記 (基数 16) では、a から f までが使われます。

+ +

radix が指定されなかった場合、基数は 10 と見なされます。

+ +

numObj が負の場合、符号は保存されます。これは基数が 2 の場合も同様です。返される文字列は、numObj の 2 の補数ではなく、先頭に - 符号がついた numObj の正のバイナリー表現です。

+ +

numObj が整数でない場合、「ドット」符号は小数点以下を区切るために使われます。

+ +

+ +

toString の使用

+ +
let count = 10
+
+console.log(count.toString())    // '10' を表示します。
+console.log((17).toString())     // '17' を表示します。
+console.log((17.2).toString())   // '17.2' を表示します。
+
+let x = 6
+
+console.log(x.toString(2))       // '110' を表示します。
+console.log((254).toString(16))  // 'fe' を表示します。
+
+console.log((-10).toString(2))   // '-1010' を表示します。
+console.log((-0xff).toString(2)) // '-11111111' を表示します。
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.prototype.tostring', 'Number.prototype.tostring')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.toString")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/number/valueof/index.html b/files/ja/web/javascript/reference/global_objects/number/valueof/index.html new file mode 100644 index 0000000000..02482a34c8 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/number/valueof/index.html @@ -0,0 +1,69 @@ +--- +title: Number.prototype.valueOf() +slug: Web/JavaScript/Reference/Global_Objects/Number/valueOf +tags: + - JavaScript + - Method + - Number + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Number/valueOf +--- +
{{JSRef}}
+ +

valueOf() メソッドは {{jsxref("Number")}} オブジェクトがラップしているプリミティブ値を返します。

+ +
{{EmbedInteractiveExample("pages/js/number-valueof.html")}}
+ + + +

構文

+ +
numObj.valueOf()
+ +

返値

+ +

指定した {{jsxref("Number")}} オブジェクトのプリミティブ値を表した数値です。

+ +

解説

+ +

このメソッドは、通常は JavaScript によって内部的に呼び出されるものであり、コード中で明示的に呼び出されることはありません。

+ +

+ +

valueOf の使用

+ +
let numObj = new Number(10)
+console.log(typeof numObj)  // object
+
+let num = numObj.valueOf()
+console.log(num)            // 10
+console.log(typeof num)     // number
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-number.prototype.valueof', 'Number.prototype.valueOf')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Number.valueOf")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf