Maison >interface Web >js tutoriel >Comment vérifier si deux nombres sont approximativement égaux en JavaScript ?

Comment vérifier si deux nombres sont approximativement égaux en JavaScript ?

PHPz
PHPzavant
2023-09-12 22:29:021041parcourir

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

Dans ce tutoriel, nous vérifierons si deux nombres sont approximativement égaux. Si les deux nombres donnés sont égaux, nous imprimerons oui, sinon non.

Mais laissez-moi être clair, nous ne faisons aucune magie ici, en gros nous devons aussi donner une valeur epsilon.

Ainsi, lorsque nous calculons la différence absolue entre ces deux nombres et que nous comparons ensuite avec epsilon, si la différence absolue est inférieure à epsilon, alors les deux nombres sont approximativement égaux, sinon ils ne le sont pas. Supposons que les deux nombres donnés soient 6,79 et 6,75, epsilon vaut 0,05, donc nous calculons d'abord la différence absolue, le résultat est abs (6,79-6,75)=0,04, ce qui est inférieur à la valeur epsilon, donc les nombres sont approximativement égaux.

Vous vous demandez peut-être pourquoi est-ce absolu ?

Donc, c'est le cas où la première valeur que nous voulons soustraire est la valeur minimale et la valeur que nous voulons soustraire est la valeur minimale, alors dans ce cas la différence sera négative et ne recevra pas le résultat souhaité . Ainsi, en prenant la valeur absolue, nous pouvons nous débarrasser de ce problème.

Prenons un exemple

Input:
   Value1= 2.03
   Value2= 2.01
   Epsilon= 0.01
Output:
   Approximately NOT equal

Lorsque nous calculons la différence absolue entre deux nombres, elle sera de 0,02 et la valeur epsilon donnée est de 0,01, donc notre différence absolue est supérieure à la valeur epsilon, elle n'est donc pas approximativement égale.

Syntaxe h2>

Ce qui suit est la syntaxe/pseudocode pour vérifier si deux nombres sont approximativement égaux -

Const difference= Math.abs(val1-val2);
if(difference<epsilon){
   approximately equal
} else {
   Aapproximately NOT equal
}

Algorithme

  • Étape 1 - Entrez deux nombres et la valeur epsilon de l'utilisateur. Attribuez ces valeurs aux variables val1, val2, epsilon respectivement.
  • Étape 2 - Calculez la différence absolue entre deux nombres val1 et val2. Affectez cette différence à la différence variable.
  • Étape 3 - Vérifiez si la différence est inférieure à epsilon. Si c'est vrai, affichez le message correct indiquant que les deux nombres sont approximativement égaux. Si faux, affiche le message correct indiquant que les nombres ne sont pas approximativement égaux.

Exemple 1

Incorporons le code de la fonction dans le code HTML pour vérifier son fonctionnement dans le monde réel. Essayez de saisir différents nombres et valeurs epsilon pour vérifier différentes 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>

On peut aussi définir notre hypothèse epsilon, si l'utilisateur ne veut donner aucune valeur epsilon, alors il faut récupérer la valeur epsilon et vérifier si l'utilisateur a rentré ces deux valeurs, car il faut donner ces deux nombres .

Exemple 2

Dans le programme suivant, nous vérifions si les nombres sont approximativement égaux. Nous avons optimisé le code pour afficher un message lorsque l'utilisateur n'a saisi aucun ou les deux chiffres.

<!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>

Veuillez vérifier les différentes valeurs du numéro 1 et du numéro 2. Essayez de vérifier sans entrer aucun ou les deux chiffres. Puisque nous définissons la valeur par défaut d'epsilon sur 1,5 au cas où l'utilisateur ne la saisirait pas, cela fonctionnera avec cette valeur.

Nous avons donc vu un moyen de vérifier si deux nombres sont approximativement égaux.

>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer