ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で 2 つの数値がほぼ等しいかどうかを確認するにはどうすればよいですか?

JavaScript で 2 つの数値がほぼ等しいかどうかを確認するにはどうすればよいですか?

PHPz
リリース: 2023-09-12 22:29:02
転載
1078 人が閲覧しました

如何在 JavaScript 中检查两个数字近似相等?

このチュートリアルでは、2 つの数値がほぼ等しいかどうかを確認します。指定された 2 つの数値が等しい場合は、yes が出力され、そうでない場合は no が出力されます。

しかし、はっきりさせておきますが、ここでは魔法を行っているわけではありません。基本的にはイプシロン値も指定する必要があります。

したがって、これら 2 つの数値の差の絶対値を計算し、イプシロンと比較すると、絶対差がイプシロンより小さい場合、2 つの数値はほぼ等しくなりますが、そうでない場合は等しくありません。与えられた 2 つの数値が 6.79 と 6.75 であると仮定すると、イプシロンは 0.05 であるため、最初に絶対差を計算します。結果は abs (6.79-6.75)=0.04 となり、これはイプシロン値より小さいため、数値はほぼ等しくなります。

なぜ絶対に?と思うかもしれません。

つまり、これは、減算する最初の値が最小値であり、減算する値が最小値である場合です。この場合、差は負になり、負にはなりません。必要な出力を与えます。したがって、絶対値を取得することで、この問題を解決できます。

例を挙げてみましょう

Input:
   Value1= 2.03
   Value2= 2.01
   Epsilon= 0.01
Output:
   Approximately NOT equal
ログイン後にコピー

2 つの数値間の絶対差を計算すると、それは 0.02 となり、指定されたイプシロン値は 0.01 となるため、絶対差はイプシロン値よりも大きくなります。ほぼ等しいわけではありません。

構文

次は、2 つの数値がほぼ等しいかどうかを確認するための構文/疑似コードです -

Const difference= Math.abs(val1-val2);
if(difference<epsilon){
   approximately equal
} else {
   Aapproximately NOT equal
}
ログイン後にコピー

アルゴリズム

  • # 1 ステップ - ユーザーからの 2 つの数値とイプシロン値を入力します。これらの値をそれぞれ変数 val1、val2、epsilon に割り当てます。
  • ステップ 2 - 2 つの数値 val1 と val2 の間の絶対差を計算します。この差を変数の差に代入します。
  • ステップ 3 - 差がイプシロン未満であるかどうかを確認します。 true の場合、2 つの数値がほぼ等しいことを示す正しいメッセージが表示されます。 false の場合、数値がほぼ等しくないという正しいメッセージが表示されます。

例 1

関数コードを HTML コードに埋め込んで、実際の動作を確認してみましょう。さまざまな数値とイプシロン値を入力して、さまざまな状況を確認してみてください。

<!DOCTYPE html>
<html>
<body>
   <h1>Approximately Equal?</h1>
   <input type="number" id="val1" placeholder="Enter number1.." /><br><br>
   <input type="number" id="val2" placeholder="Enter number2.." /><br><br>
   <input type="number" id="epsilon" placeholder="Enter max epsilon.." /><br><br>
   <input type="button" value="IsEqual?" onClick="checkIf_approx_equal()" style="color: blue; margin-left: 35px;"/>
   <h2 id="writeHere"></h2>
   <script>
      function checkIf_approx_equal(){
         var val1=document.getElementById("val1").value
         var val2=document.getElementById("val2").value
         var epsilon=document.getElementById("epsilon").value
         var difference= Math.abs(val1-val2);
         console.log(difference)
         if(difference<epsilon){
            document.getElementById(&#39;writeHere&#39;).innerHTML="Yes Approximately Equal"
         } else {
            document.getElementById(&#39;writeHere&#39;).innerHTML="No Approximately NOT Equal"
         }
      }
   </script>
</body>
</html>
ログイン後にコピー

イプシロン仮説を定義することもできます。ユーザーがイプシロン値を指定したくない場合は、イプシロン値を取得して、ユーザーがこれら 2 つの値を入力したかどうかを確認する必要があります。これは必要なためです。

例 2

次のプログラムでは、数値がほぼ等しいかどうかを確認します。ユーザーがどちらかまたは両方の番号を入力していない場合にメッセージを表示するようにコードを最適化しました。

<!DOCTYPE html>
<html>
<body>
   <h1>Approximately Equal?</h1>
   <input type="number" id="val1" placeholder="Enter number1.." /><br><br>
   <input type="number" id="val2" placeholder="Enter number2.." /><br><br>
   <input type="number" id="epsilon" placeholder="Enter max epsilon.." /><br><br>
   <input type="button" value="IsEqual?" onClick="checkIf_approx_equal()" style="color: blue; margin-left: 35px;"/>
   <h2 id="writeHere"></h2>
   <script>
      function checkIf_approx_equal(){
         var val1=document.getElementById("val1").value
         var val2=document.getElementById("val2").value
         var epsilon=document.getElementById("epsilon").value

         if(!val1){
            document.getElementById(&#39;writeHere&#39;).innerHTML="Please enter a value in first Box"
            return;
         }
         if(!val2){
            document.getElementById(&#39;writeHere&#39;).innerHTML="Please enter a value in second Box"
            return;
         }
         if(!epsilon) epsilon=1.5

         var difference= Math.abs(val1-val2);
         console.log(difference)
         if(difference<epsilon){
            document.getElementById(&#39;writeHere&#39;).innerHTML="Equal"
         } else {
            document.getElementById(&#39;writeHere&#39;).innerHTML="Not Equal"
         }
      }
   </script>
</body>
</html>
ログイン後にコピー

1番と2番の値の違いを確認してください。どちらかまたは両方の番号を入力せずに確認してみてください。ユーザーが入力しない場合に備えてイプシロンのデフォルト値を 1.5 に設定しているため、その値で動作します。

ということで、2 つの数値がほぼ等しいかどうかを確認する方法を見てきました。

>

以上がJavaScript で 2 つの数値がほぼ等しいかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート