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

「浮動小数点演算」はJavaScriptで100%正確ですか?


浮動小数点演算 javascriptでは常に100%正確であるとは限りません。たとえば、1/3、つまり0.33333 .....をとると、値0.333....は未知のポイントで丸められます。したがって、値も10進数である別の値を追加すると、意図した結果が得られません。したがって、小数点以下2桁を追加すると、丸め誤差が発生すると結論付けることができます。 、しかし幸いなことに、これらのエラーは非常に小さいため、実際のコード結果は影響を受けません。

次の例では、0.3に0.6を加算すると、結果は0.9になるはずですが、丸め誤差があるためです。 結果の値は、出力に示されている意図した値ではありません。

<html>
<body>
   <p id="F-P-A"></p>
   <script>
      var err = 0.3 + 0.6;
         document.getElementById("F-P-A").innerHTML = "0.3 + 0.6 = " + err;
   </script>
</body>
</html>

出力

0.3 + 0.6 = 0.8999999999999999


次の例では、0.2と0.1を追加すると、意図した結果は0.3になりますが、ラウンドインが原因です。 gエラー 、意図した値は結果の値ではありません。

<html>
<body>
   <p id="F-P-A"></p>
   <script>
      var err = 0.2 + 0.1;
      document.getElementById("F-P-A").innerHTML = "0.2 + 0.1 = " + err;
   </script>
</body>
</html>

出力

0.2 + 0.1 = 0.30000000000000004

  1. JavaScriptの約束

    JavaScriptのPromiseを使用すると、Promiseの作成時に値が事前にわからない非同期操作を実行できます。約束には、保留中、履行済み、拒否済みの3つの状態があります。 以下はJavaScriptのpromiseのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,

  2. JavaScript WeakSet

    JavaScript WeakSetは、オブジェクトのコレクションを格納するために使用されます。セットのように、重複は保存されません。 WeakSetのメソッド- メソッド 説明 add(obj) weakSetに新しい値を追加します。 delete(obj) weakSetから値を削除します。 has(obj) weakSetオブジェクトに値が含まれているかどうかに応じて、trueまたはfalseを返します。 length() weakSetオブジェクトの長さを返します 以下はJavaScriptのWeakSetのコードです- 例