このチュートリアルでは、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 }
関数コードを 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('writeHere').innerHTML="Yes Approximately Equal" } else { document.getElementById('writeHere').innerHTML="No Approximately NOT Equal" } } </script> </body> </html>
イプシロン仮説を定義することもできます。ユーザーがイプシロン値を指定したくない場合は、イプシロン値を取得して、ユーザーがこれら 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('writeHere').innerHTML="Please enter a value in first Box" return; } if(!val2){ document.getElementById('writeHere').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('writeHere').innerHTML="Equal" } else { document.getElementById('writeHere').innerHTML="Not Equal" } } </script> </body> </html>
1番と2番の値の違いを確認してください。どちらかまたは両方の番号を入力せずに確認してみてください。ユーザーが入力しない場合に備えてイプシロンのデフォルト値を 1.5 に設定しているため、その値で動作します。
ということで、2 つの数値がほぼ等しいかどうかを確認する方法を見てきました。
>以上がJavaScript で 2 つの数値がほぼ等しいかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。