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

Groovy Java Discussion :

Range - utilisable pour les entiers et dates seulement ?


Sujet :

Groovy Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 37
    Points
    37
    Par défaut Range - utilisable pour les entiers et dates seulement ?
    Bonjour à tous,

    j'utilise range dans mes programmes et avec les entiers et les dates cela fonctionne très bien mais pas avec double :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       double diasNb = dias.value().toDouble()
       def range = 40..99
     
       if( !range.contains(diasNb) ) {
    Quelqu'un pourrait me confirmer que range ne fonctionne qu'avec des entiers et des dates ? j'ai regardé sur google mais je n'ai pas trouvé de réponse claire.
    En vous remerciant par avance

    Cordialement
    Gilles

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    C'est pourtant marqué dans la doc de groovy:


    http://groovy.codehaus.org/Collections

    Ranges can be used for any Java object which implements java.lang.Comparable for comparison and also have methods next() and previous() to return the next / previous item in the range.

    Et tout ce qui étends Number correspond à cette définition:
    http://groovy.codehaus.org/groovy-jd...ng/Number.html


    Dans ton code, là, tu a créé un range de integer, puis tu compare avec un double, ça risque de ne pas marcher des masses


    A noter qu'un Range, c'est une collection discrète d'élément.

    Si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      double diasNb = dias.value().toDouble()
       def range = 40.0..99.0
     
       if( !range.contains(diasNb) ) {
    Ca teste que diasNB est 40.0, 41.0, 42.0, 43.0, .... par qu'il est compris entre 40.0 et 99.0 !!

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Donc en faisant range 40.00..99.00 cela correspondra à la collection discrète suivante : 40.01 40.02......98.99 99.00 ?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Gillou6772 Voir le message
    Donc en faisant range 40.00..99.00 cela correspondra à la collection discrète suivante : 40.01 40.02......98.99 99.00 ?
    Heu non, à 40.00, 41.00, 42.00, etc, cf la doc que je t'ais donné


    Number next()
    Increment a Number by one.

    donc du coup, 40.23...42.69 donnera

    40.23, 41.23, 42.23

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    ok merci beaucoup.

    Du coup je vais utiliser les les bons && < >.... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    double diasNb = dias.value().toDouble()
    if( diasNb < 40 || diasNb > 99 ) {

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PMD] [Maven] Redéfinir la librairie utilisée pour les RulesSet ?
    Par DanielW33 dans le forum Qualimétrie
    Réponses: 2
    Dernier message: 07/02/2007, 17h33
  2. Espace disque alloué pour les entiers
    Par stos dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 30/10/2006, 14h17
  3. lib à utiliser pour les puissances x^y
    Par chris670 dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 10/12/2005, 18h00
  4. Quel format de fichier utiliser pour les maps ?
    Par fb57 dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/09/2004, 20h22
  5. FormatFloat pour les entiers !?
    Par Lung dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2003, 15h20

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