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 Perl Discussion :

Comment tester qu'une valeur donne est un entier ou non?


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Par défaut Comment tester qu'une valeur donne est un entier ou non?
    Salut,

    Toujours poser de tres simple question , avec une valeur donne (en argument) comment je peux tester que cette valeur est entier ou non?

    ex : perl monScript.pl 10
    Je veux verifier si 10 est un entier ou non (dans le script)

    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Par défaut
    Avec une regex, selon la complexité du problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if ( $valeur =~ m!\d+! ) {
       print "un entier\n";
    }
    else {
       print "autre chose\n";
    }
    (Voir perlfaq4.)

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Par défaut
    Oooops: je voulais dire plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($valeur =~ m!^\d+$! ){

  4. #4
    Membre expérimenté
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Par défaut
    Pour les matheux, la fonction int() est sans doute préférable, et ça risque d'être plus performant qu'un regexp...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sub est_entier {
        return  $_[0] == int($_[0]) ? 1 : 0;
    }
     
    for my $num (2, 3.3, -7, -3.5) {
        print "$num ",
            (est_entier($num) ? 'est' : q(n'est pas)),
            " entier\n";
    }
    D'autant plus que les regexps présentés souffrent de deux défauts : ils ne prennent pas en compte les nombres négatifs, ni la possibilité qu'il y ait des blancs dans les variables avant ou après les chiffres (ce qui peut arrivé lors d'une saisie interactive).

    N

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/08/2013, 12h05
  2. Réponses: 8
    Dernier message: 18/12/2009, 13h58
  3. Comment tester si une valeur de type entier est nulle ?
    Par kikidrome dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 08/07/2009, 00h53
  4. Comment tester qu'une valeur est dans un tableau ?
    Par Pierrot92320 dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/04/2009, 18h59
  5. Réponses: 5
    Dernier message: 25/09/2008, 18h53

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