JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのNumber.EPSILONプロパティとは?浮動小数点誤差を解決する方法

Number.EPSILONは、JavaScriptのNumberオブジェクトが持つ静的プロパティの一つで、「1」と「1より大きい最小の浮動小数点数」の差を表します。その値は約 2.220446049250313e-16(2の-52乗)です。

このプロパティは、コンピュータが扱う倍精度浮動小数点数(IEEE 754)における計算誤差の限界を示すものであり、浮動小数点数同士を正確に比較したい場合などに活用されます。

構文

Number.EPSILONの構文は以下のとおりです。

Number.EPSILON

引数は不要で、Numberオブジェクトに対して直接呼び出します。

基本的な使用例

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var result = Number.EPSILON;
        document.write("イプシロンの値 : " + result);
    </script>
</body>
</html>

出力結果

イプシロンの値 : 2.220446049250313e-16

実践的な活用例:浮動小数点数の比較

JavaScriptでは、0.1 + 0.2 === 0.3 のような単純な計算でも false が返されることがあります。これは浮動小数点数の内部表現による誤差のためです。このような場合、Number.EPSILONを使うことで安全に比較できます。

function numbersAlmostEqual(a, b) {
    return Math.abs(a - b) < Number.EPSILON;
}

console.log(0.1 + 0.2 === 0.3);                    // false
console.log(numbersAlmostEqual(0.1 + 0.2, 0.3));   // true

まとめ

  • Number.EPSILONは「1と、1より大きい最小の浮動小数点数との差」を表す定数です。
  • 値は約 2.220446049250313e-16 です。
  • 浮動小数点数の誤差を考慮した数値比較を行う際に役立ちます。
  1. JavaScriptのsourceプロパティとは?正規表現パターンテキストを取得する方法を解説

    JavaScriptのsourceプロパティは、RegExp(正規表現)オブジェクトに設定されたパターン文字列そのものを返すプロパティです。g(グローバルマッチ)やi(大文字・小文字を区別しない)などのフラグは結果に含まれず、マッチング対象となる純粋な正規表現テキストのみを取得できます。 動的に正規表現を組み立てたい場合や、デバッグ時に実際に適用されているパターンを確認したい場合などに活用できる便利なプロパティです。 基本構文 const regex = /pattern/flags; console.log(regex.source); // パターン文字列のみが返される サンプルコード

  2. JavaScriptで数字パターンを表示する方法【初心者向けサンプルコード】

    本記事では、テキスト入力欄とボタンを備えたJavaScript・HTMLプログラムの作成方法を解説します。ユーザーが入力欄に任意の数値(例:5)を入力してボタンをクリックすると、画面に以下のような数字パターンが表示される仕組みです。(n = 5 の場合の出力例)01 01 02 01 02 03 01 02 03 04 01 02 03 04 05仕組みのポイントこのパターンは二重ループ(ネストしたforループ)を使うことで実現できます。外側のループが「行」を制御し、内側のループがその行に表示する「数字の個数」を制御します。i 行目には 1 から i までの数字が順番に出力されるため、行が進む