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

JavaScriptで数値が安全な整数かどうかを判定する方法【Number.isSafeIntegerの使い方】

JavaScriptにおける安全な整数とは?

JavaScriptには数値に関するいくつかの制約があります。すべての数値は標準化された形式(IEEE 754倍精度浮動小数点数)に従う必要があり、この規則に違反する整数は「安全な整数」として扱うことができません。

「安全な整数」とは、-(2^53 - 1) から (2^53 - 1) までのすべての整数(±9,007,199,254,740,991)を指します。これは Number.MIN_SAFE_INTEGER から Number.MAX_SAFE_INTEGER の範囲に相当し、この範囲内の整数であれば演算結果の正確性が保証されます。

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

構文

Number.isSafeInteger(num);

このメソッドは引数として数値を受け取り、その数値が安全な整数の範囲内にあるかどうかを評価します。指定された数値が範囲内であれば true が、範囲外であれば false が返されます。

例1:安全な整数である場合

次の例では、指定された2つの数値がどちらも -(2^53 - 1) 〜 (2^53 - 1) の範囲内にあります。そのため、Number.isSafeInteger() メソッドは両方の数値に対して true を返します。

<html>
<body>
<script>
    var u = Number.isSafeInteger((Math.pow(2,53))-1);
    var res = Number.isSafeInteger(-1);
    document.write(res);
    document.write("</br>");
    document.write(u);
</script>
</body>
</html>

出力結果

true
true

例2:安全な整数ではない場合

次の例では、指定された数値が -(2^53 - 1) 〜 (2^53 - 1) の範囲外にあります。そのため、Number.isSafeInteger() メソッドは false を返します。

<html>
<body>
    <script>
        var u = Number.isSafeInteger(-(Math.pow(2,53))-5);
        document.write(u);
    </script>
</body>
</html>

出力結果

false

まとめ

JavaScriptで大きな整数を扱う際には、安全な整数の範囲(±9,007,199,254,740,991)を超えていないかに注意が必要です。Number.isSafeInteger() を活用することで、数値が正確に表現できる範囲内にあるかどうかを簡単にチェックでき、意図しない計算エラーを未然に防ぐことができます。

  1. C++で与えられた整数が3の累乗かどうかを判定する方法

    この問題では、整数Nが与えられ、その整数が3の累乗であるかどうかを判定することが課題となります。問題の例具体的な例を見てみましょう。入力 : N = 729 出力 : Yes説明:36 = 729729は3の6乗に等しいため、3の累乗であると判定できます。解法のアプローチこの問題を効率的に解くには、3の累乗の性質を利用します。ポイントとなるのは、32ビット符号付き整数で表現できる最大の3の累乗は 1162261467(319) であるという点です。判定方法は非常にシンプルです。与えられた数Nが 1162261467 を割り切れるかどうか を確認します。もしNが3の累乗であれば、その約数はすべて

  2. C#で数値が2で割り切れるかどうかを判定する方法

    2で割り切れるかどうかの判定方法ある数値が2で割り切れるかどうかを確認するには、その数を2で割ったときの余りをチェックします。C#では剰余演算子「%」を使うことで、割り算の余りを簡単に求めることができます。余りが0であれば、その数は2で割り切れる(偶数)ことを意味します。余りが0以外であれば、2で割り切れない(奇数)ということになります。判定ロジックの基本形if (num % 2 == 0) { Console.WriteLine(Divisible by 2 ); } else { Console.WriteLine(Not divisible by 2); }このように、n