Home >Web Front-end >JS Tutorial >How to check if two numbers are approximately equal in JavaScript?

How to check if two numbers are approximately equal in JavaScript?

PHPz
PHPzforward
2023-09-12 22:29:021073browse

如何在 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.

Syntax h2>

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
}

Algorithm

  • #1 Step - Enter two numbers and epsilon value from the user. Assign these values ​​to variables val1, val2, epsilon respectively.
  • Step 2 - Calculate the absolute difference between two numbers val1 and val2. Assign this difference to the variable difference.
  • Step 3 - Check if the difference is less than epsilon. If true, display the correct message stating that the two numbers are approximately equal. If false, displays the correct message that the numbers are not approximately equal.

Example 1

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(&#39;writeHere&#39;).innerHTML="Yes Approximately Equal"
         } else {
            document.getElementById(&#39;writeHere&#39;).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.

Example 2

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(&#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>

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!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete