Maison >Java >javaDidacticiel >JavaExemple de double comparaison

JavaExemple de double comparaison

王林
王林avant
2023-09-01 18:41:021588parcourir

Java Double比较示例

Double est l'un des types de données primitifs disponibles en Java pour représenter des nombres décimaux. Il est du type à virgule flottante, également appelé nombre réel, et est utilisé lorsque les calculs nécessitent des valeurs décimales. Par exemple, pour exprimer le résultat de 1/5, qui est 0,2, les résultats du sinus et du cosinus nécessitent également un point décimal. En plus de la représentation de valeurs décimales, on peut également effectuer des opérations de comparaison entre deux variables de type double. Cet article vise à explorer les manières possibles de comparer deux variables à l'aide d'un exemple de programme.

Comparez les nombres à double précision en Java

Dans cette section, nous expliquerons comment comparer les doubles en Java. Nous pouvons utiliser les méthodes suivantes -

  • Utiliser == opérateur

  • Utilisez la méthode compareTo()

  • Utilisez la méthode compare()

Discutons-en un par un avec des exemples de programmes.

Utilisez l'opérateur ==

L'opérateur « ==" » est l'un des opérateurs relationnels disponibles en Java. Il est utilisé pour comparer les valeurs de deux types de données. Plus précisément, il effectue un test d'égalité c'est-à-dire qu'il vérifie si les valeurs données sont égales et renvoie vrai si les deux valeurs sont égales, faux sinon.

Cependant, de nombreux développeurs Java déconseillent l'opérateur d'égalité en raison d'erreurs d'arrondi. Les erreurs d'arrondi sont très courantes et se produisent lorsque nous travaillons avec des nombres à virgule flottante. Par conséquent, lorsque nous utilisons l'opérateur "==" pour comparer des valeurs doubles, nous pouvons obtenir des résultats erronés.

Exemple

Dans cet exemple, nous utiliserons l'opérateur '==' pour comparer deux valeurs doubles.

public class Demo {
   public static void main(String[] args) {
      double data1 = 0.30;
      double data2 = 0.20 + 0.10;
      System.out.println("Value after addition: " + data2);
      // checking equality of first operation
      System.out.println(data1 == data2);
      double data3 = 0.50;
      double data4 = 0.10 + 0.10 + 0.10 + 0.10 + 0.10;
      System.out.println("Value after addition: " + data4);
      // checking equality of second operation
      System.out.println(data3 == data4);
   }
}

Sortie

Value after addition: 0.30000000000000004
false
Value after addition: 0.5
true

Instructions

Dans le code ci-dessus, lorsque nous effectuons la première opération d'addition, la valeur attendue de 'data2' est de 0,30, mais le résultat de sortie est erroné. Cependant, lorsque nous effectuons une autre opération d’addition similaire, nous obtenons le résultat exact et le test d’égalité réussit. Par conséquent, il n'est pas recommandé d'utiliser l'opérateur '==' pour comparer deux valeurs doubles.

Utilisez la méthode compareTo()

C'est une méthode de la classe 'java.lang.Double' qui peut être utilisée pour comparer deux valeurs Double. Il renvoie 0 lorsque le premier objet est égal à l'objet passé, une valeur positive si le premier objet est supérieur à l'objet passé et une valeur négative dans le cas contraire.

Grammaire

firstObject.compareTo(secondObject);

Exemple

Dans l'exemple suivant, nous allons initialiser deux variables Double et les comparer à l'aide de la méthode compareTo().

import java.lang.*;
public class Demo {
   public static void main(String args[]) {
      // declaring and initializing two double variable
      Double d1 = Double.valueOf(395.24);
      Double d2 = Double.valueOf(323.30);
      // comparing and storing the result to an int variable
      int res =  d1.compareTo(d2);
      if(res > 0) { 
         System.out.println("d1 is greater than d2");
      } else if(res < 0) {
         System.out.println("d1 is less than d2");
      } else {
         System.out.println("d1 is equal to d2");
      }
   }
}

Sortie

d1 is greater than d2

Utilisez la méthode compare()

C'est une méthode statique de la classe 'java.lang.Double'. Cela fonctionne de manière similaire à la méthode compareTo().

Exemple

L'exemple suivant utilise la méthode compare() pour vérifier si deux valeurs Double sont égales.

import java.lang.*;
public class Demo {
   public static void main(String args[]) {
      // declaring and initializing two double variable
      Double d1 = Double.valueOf("195.24");
      Double d2 = Double.valueOf("323.30");
      int res =  Double.compare(d1, d2);
      // comparing and storing the result to an int variable
      if(res > 0) {
         System.out.println("d1 is greater than d2");
      } else if(res < 0) {
         System.out.println("d1 is less than d2");
      } else {
         System.out.println("d1 is equal to d2");
      }
   }
}

Sortie

d1 is less than d2

Conclusion

Nous avons discuté de trois façons de comparer les valeurs Double à l'aide d'un programme. Essayez d'éviter la première approche, qui utilise l'opérateur "==" pour comparer des valeurs doubles, car cela peut conduire à des résultats erronés en raison d'erreurs d'arrondi. Deux autres méthodes intégrées nommées compare() et compareTo() nous fourniront des résultats précis.

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