IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Comparer 2 variables de type Float en java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut Comparer 2 variables de type Float en java
    Bonsoir, tout le monde
    comment je peux comparer 2 variables de types Float, car j'ai essayè ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Float a = new Float(1.2);
    Float b = new Float(2.2);
    if(a.floatValue()>b.floatValue()) {
    ...
    }
    est ce que je suis dans le bon chemin ??

  2. #2
    Membre expérimenté Avatar de akrom
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Par défaut
    oui mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Float a = new Float(1.2);
    Float b = new Float(2.2);
    if(a<b) {
    ...
    }
    fonctionne aussi

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Citation Envoyé par akrom Voir le message
    oui mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Float a = new Float(1.2);
    Float b = new Float(2.2);
    if(a<b) {
    ...
    }
    fonctionne aussi
    Non car ce test va comparer les références au lieu de comparer les valeurs.
    Il est possible que la comparaison des référence soit équivalente à la comparaison des valeurs, mais ça serait un pur hasard.

    Le floatValue proposé par l'auteur est bon.

    [HS]
    Depuis Java 1.5 et l'autoboxing, on peut instancier implicitement les Float:
    Float a = new Float(1.2);
    équivaut à
    Float a = 1.2F;
    [/HS]

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Nudger Voir le message
    Non car ce test va comparer les références au lieu de comparer les valeurs.
    Ça veut rien dire. On ne peut comparer des références que pour l'égalité, pas pour vérifier si une référence est "inférieure" à une autre.

    Ici c'est bien sûr l'auto-outbox qui s'applique. Avant Java 1.5, ça ne compilerait pas.

    Bon, et évidemment, le plus simple, c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    float a = 1.2f;
    float b = 2.2f;
    if(a < b) {
      // ...
    }
    À quoi ça sert, ici, des Float et des new, je vous le demande.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Ça veut rien dire. On ne peut comparer des références que pour l'égalité, pas pour vérifier si une référence est "inférieure" à une autre.

    Ici c'est bien sûr l'auto-outbox qui s'applique. Avant Java 1.5, ça ne compilerait pas.
    En effet dans ce cas là l'auto-unboxing va marcher mais ce n'est pas le genre de chose que j'apprendrais à un débutant car le jour ou il essaiera de faire a==b, il ne comprendra pas pourquoi ça ne marche plus.
    Si on tavaille avec des objet Float, mieux vaut utiliser leur méthode compareTo().

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    personellement, si on veux éviter la confusion, je préfère encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ( (float)a  < (float)b)
    bien plus lisible qu'un appel à compareTo

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/06/2015, 12h49
  2. Différence entre deux variables de type java.util.Date
    Par hetlar dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 30/08/2012, 07h04
  3. variables de type float
    Par MalcolmIT dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 25/08/2010, 14h11
  4. comparer 2 variables de type string
    Par kohsaka dans le forum C++
    Réponses: 3
    Dernier message: 21/01/2007, 18h31
  5. Réponses: 1
    Dernier message: 21/12/2005, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo