Maison >Java >javaDidacticiel >JavaExemple de double comparaison
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.
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.
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.
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); } }
Value after addition: 0.30000000000000004 false Value after addition: 0.5 true
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.
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.
firstObject.compareTo(secondObject);
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"); } } }
d1 is greater than d2
C'est une méthode statique de la classe 'java.lang.Double'. Cela fonctionne de manière similaire à la méthode compareTo().
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"); } } }
d1 is less than d2
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!