Home >Web Front-end >JS Tutorial >How to check if two numbers are approximately equal in JavaScript?
In this tutorial we will check if two numbers are approximately equal. If the given two numbers are equal then we will print yes otherwise no.
But let me be clear, we are not doing any magic here, basically we also have to give an epsilon value.
So when we calculate the absolute difference between these two numbers and then compare with epsilon, if the absolute difference is less than epsilon, then the two numbers are approximately equal, otherwise they are not. Suppose the two numbers given are 6.79 and 6.75, epsilon is 0.05, so we first calculate the absolute difference, the result is abs (6.79-6.75)=0.04, which is less than the epsilon value, so the numbers are approximately equal.
You might be thinking why absolutely?
So, this is the case where the first value we want to subtract from is the minimum value and the value we want to subtract is the minimum value, then in this case the difference will be negative and doesn't give the desired output. So, by taking the absolute value we can get rid of this problem.
Let us take an example
Input: Value1= 2.03 Value2= 2.01 Epsilon= 0.01 Output: Approximately NOT equal
When we calculate the absolute difference between two numbers it will be 0.02 and the given epsilon value is 0.01 so our absolute difference is greater than the epsilon value, so it is not approximately equal.
The following is the syntax/pseudocode for checking if two numbers are approximately equal -
Const difference= Math.abs(val1-val2); if(difference<epsilon){ approximately equal } else { Aapproximately NOT equal }
Let’s embed the function code into the HTML code to check how it works in the real world. Try entering different numbers and epsilon values to check different situations.
<!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>
We can also define our epsilon hypothesis, if the user does not want to give any epsilon value, then we have to get the epsilon value and check if the user has entered these two values, because it is necessary to give these two Numbers.
In the following program, we check whether numbers are approximately equal. We optimized the code to display a message when the user has not entered either or both numbers.
<!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>
Please check the different values of number 1 and number 2. Try checking without entering any or both numbers. Since we set the default value of epsilon to 1.5 in case the user doesn't enter it, it will work with that value.
So, we saw a way to check if two numbers are approximately equal.
>The above is the detailed content of How to check if two numbers are approximately equal in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!