Java pour l'informatique industrielle
Chapitre 1. Introduction aux objets
Chapitre 2. Les structures de contrôle
2.1. Abstraction et modularité
2.2. La comparaison
2.2.1. Comparer des valeurs primitives
2.2.2. Comparer des objets
2.2.3. Comparer champs par champs
2.3. Le choix
2.4. Les constructeurs
2.5. La surcharge
2.6. La répétition
2.7. Les variables
2.8. Le domaine de valeur
2.9. Exercice
Chapitre 3. Unifier et réutiliser
Chapitre 4. Modèle, Vue et Contrôle
Chapitre 5. Les entrées/sorties
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

2.2.1. Comparer des valeurs primitives

L'opérateur == permet de comparer des expressions numériques.

e.g. int x, y; if (x==y) ... // si x est égal à y alors ...

Attention, cependant à la comparaison des nombres approchés (float, double). Il est préférable de conserver une marge pour les erreurs de précision. En particulier, lorsqu'on teste l'égalité de nombres approchés, préférer :

double x, y; if (Math.abs(x,y) < 1e-4) ...; // si x est y sont éloignés de moins de 0.0001 alors ...

à

if (x == y) ...; // si x est y sont égaux alors ...

En effet, comme nous l'avons vu le codage des nombres approchés recèle de pièges. Par exemple,

0.1+0.1+0.1+0.1+0.1+0.1+0.1 == 0.7
alors que
0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1 != 0.8
Ceci est dû à l'erreur d'approximation qui, dans ce cas, apparaît après sept additions successives.
Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante