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 :

Exposants >100 ne sont pas reconnus comme des chiffres !!


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Exposants >100 ne sont pas reconnus comme des chiffres !!
    J'ai un problèmes étrange.

    je parse un fichier qui contient des exposants (par ecemple 6e-10).
    Je les récupère et je fais un test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if($exposant < 0.0001){
           print "c'est super";
    }
    tous se passe bien jusqu'au moment ou je tombe sur un exposant supérieur à 100.
    La console me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Argument "e-149" isn't numeric in numeric lt (<)
    Comment resoudre ce probleme ?

    [edit]
    J'utilise eclipse avec le plugin EPIC sous windows.
    Cela a une importance ?

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    "e-149" n'est pas un nombre correct, selon aucune norme de notation : il y manque la mantisse... Visiblement le problème est soit au niveau récupération, soit carrément au niveau du fichier, mais pas au niveau de la comparaison. (teste toi-même, le problème n'est pas la taille de l'exposant : "1e-149" passe parfaitement)

    --
    Jedaï

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Cela doit en effet venir de l'extraction.
    Pour tout les exposants à deux chiffres, je réupère la mantisse.
    Dès qu'il passe à 3 chiffre, je la perds.
    Je vais chercher dans ce sens.

    [edit]
    ouf ! C'est pas de ma faute.
    L'erreur est en dans le fichier que je parse, il manque effectivement la mantisse.

    Est-il possible de "catcher" l'erreur ou l'exception comme en java.
    Je m'explique :
    Si l'interpréteur trouves l'erreur '"e-148" isn't numeric in numeric lt (<)'
    Alors il remplaces e-148 par 1e-148.

    merci

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Oui, tu peux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    eval { 
      if($exposant < 0.0001){
        print "c'est super";
      } 
    };
    if( $@ =~ m/isn't numeric/ ){
      if(1.$exposant < 0.0001){
        print "c'est super";
      }
    } elsif( $@ ) {
      die $@;
    }
    --
    Jedaï

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    merci, c'est exactement ce que je cherchais.
    En revanche je ne vois pas quoi sert le elsif

  6. #6
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    à tester que tu n'as pas malgré tout une erreur.

Discussions similaires

  1. Mes beans ne sont pas reconnus dans la JSP
    Par daydream123 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/03/2012, 11h39
  2. Réponses: 2
    Dernier message: 05/07/2009, 16h26
  3. comparer lettres comme des chiffres
    Par francky74 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/07/2008, 11h31
  4. Réponses: 2
    Dernier message: 26/04/2007, 18h17
  5. Mes DVD R+ (W) ne sont pas reconnus
    Par Speed41 dans le forum Périphériques
    Réponses: 10
    Dernier message: 29/12/2006, 11h34

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