JavaScript の浮動小数点の制限とは何かと思っていました。次のような詳細な浮動小数点結果を返さない次のコードがあります。
2e-2 is the same as 0.02
var numero = 1E-12;
document.write(numero);
1e-12 を返します。
JavaScript が処理できる最大の指数結果は?
JavaScript の浮動小数点の制限とは何かと思っていました。次のような詳細な浮動小数点結果を返さない次のコードがあります。
2e-2 is the same as 0.02
var numero = 1E-12;
document.write(numero);
1e-12 を返します。
JavaScript が処理できる最大の指数結果は?
JavaScript は ECMAScript の実装であり、Ecma-262および ISO/IEC 16262 で指定されています。Ecma-262 は、IEEE 754 64 ビット 2 進浮動小数点が使用されることを指定します。
この形式では、最小の正数は 2 –1074 (4.94e–324 をわずかに上回る) であり、最大の有限数は 2 1024 –2 971 (1.798e308 をわずかに下回る) です。無限大を表現できるので、その意味で JavaScript の数値の上限はありません。
この形式の数値の仮数部 (小数部) は最大 53 ビットです。(2〜1022未満の数値は非正規であり、ビット数が少ないです。)ビット数が限られているということは、例の.02を含め、多くの数値が正確に表現できないことを意味します。その結果、算術演算の結果は最も近い表現可能な値に丸められ、一連の計算のエラーが取り消されたり累積したりして、破滅的な結果になることさえあります。
この形式には、NaN (Not a Number) と呼ばれる特別なエンティティも含まれています。NaN は、数値が初期化されていないことを示したり、特別なデバッグ目的で使用したり、適切な数値がない演算 (–1 の平方根など) の結果を表すために使用できます。