如何在 JavaScript 中检查两个数字近似相等?
在本教程中,我们将检查两个数字是否近似相等。如果给定的两个数字相等,那么我们将打印 yes,否则则不是。
但是让我明确一下,我们不会在这里做任何魔术,基本上我们还必须给出一个 epsilon 值。
因此,当我们计算这两个数字之间的绝对差,然后与 epsilon 进行比较时,如果绝对差小于 epsilon,则两个数字近似相等,否则不近似相等。假设给出的两个数字是 6.79 和 6.75,epsilon 为 0.05,因此我们首先计算绝对差,结果为 abs (6.79-6.75)=0.04,它小于 epsilon 值,因此数字近似相等.
您可能会想为什么是绝对的?
所以,这是在我们要从中减去的第一个值是最小值并且我们要减去的值是最小值的情况下,那么在这种情况下差异将为负,并且不会给出所需的输出。所以,通过取绝对值我们可以摆脱这个问题。
让我们举个例子
Input: Value1= 2.03 Value2= 2.01 Epsilon= 0.01 Output: Approximately NOT equal
当我们计算两个数字之间的绝对差时,它将是 0.02,而给定的 epsilon 值是 0.01,因此我们的绝对差大于 epsilon 值,因此它不近似相等。
语法 h2>
以下是检查两个数字是否近似相等的语法/伪代码 -
Const difference= Math.abs(val1-val2); if(difference<epsilon){ approximately equal } else { Aapproximately NOT equal }
算法
- 第1步 - 从用户处输入两个数字和epsilon值。将这些值分别分配给变量 val1、val2、epsilon。
- 第 2 步 - 计算两个数字 val1 和 val2 之间的绝对差。将此差异分配给变量差异。
- 步骤 3 - 检查差异是否小于 epsilon。如果为真,则显示正确的消息,说明两个数字大约相等。如果为 false,则显示数字不近似相等的正确消息。
示例 1
让我们将函数代码嵌入到 HTML 代码中以检查现实世界的工作情况。尝试输入不同的数字和 epsilon 值来检查不同的情况。
<!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>
我们还可以定义我们的 epsilon 假设,如果用户不想给出任何 epsilon 值,那么我们必须获取 epsilon 值并检查用户是否输入了这两个值,因为有必要给出这两个数字.
示例 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 的不同值。尝试在不输入任何或两个数字的情况下进行检查。由于我们将 epsilon 的默认值设置为 1.5,以防用户不输入,因此它将使用该值进行工作。
因此,我们看到了检查两个数字是否近似相等的方法。
>以上就是如何在 JavaScript 中检查两个数字近似相等?的详细内容,更多请关注双恒网络其它相关文章!