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

C++ Discussion :

EInvalidOp erreur avec TryStrToFloat


Sujet :

C++

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 266
    Points : 86
    Points
    86
    Par défaut EInvalidOp erreur avec TryStrToFloat
    Bonjour,

    Voila j'ai quelques problèmes d’exécution de mon code. Pour un code qui me parait logique mon programme plante :

    voici mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    bool ParseEPS::IsDouble(string str)
    {
       double d;
       AnsiString texte = str.c_str();
       bool result = TryStrToFloat(texte,d);
       return result;
     
     
    }
    Comme vous l'avez peut être compris ma fonction permet de savoir si le contenu d'un std::string peut être ou non converti en double.

    Lors de mon plantage la fonction devrais répondre non puisque le string à tester est
    "userdict"

    J'obtiens l'erreur :
    "exception class EInvalidOp with message << Invalid floating point operation>>"
    lorsque je passe par la ligne comportant le "tryStrToFloat"

    Si vous pourriez m'aider a comprendre mon erreur cela serait génial ou si une autre idée vous viens pour arriver a faire en sorte de pouvoir tester si un string peut être convertie en double.

    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    L'erreur provient selon toute probabilité de TryStrToFloat...que je ne connais pas. De quel environnement, ou librairie provient-elle?

  3. #3
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 266
    Points : 86
    Points
    86
    Par défaut
    De quel environnement, ou librairie provient-elle?
    TryStrToFloat provient de la librairie fournit par Borland C++

    http://docwiki.embarcadero.com/Libra....TryStrToFloat

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Ok, je me demande si le problème ne vient pas de l'utilisation d'un double non-initialisé (sans garantie, je ne sais pas comment cette fonction proprio Borland est faite...)

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Salut

    Ca ne répond pas vraiment à la question mais tu peux implémenter toi même cette fonction de manière très simple et standard. Voici un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <sstream>
    #include <string>
    #include <iostream>
     
    bool is_double(std::string const& input, double& result) {
      std::istringstream iss(input);
      iss >> std::noskipws >> result;
      return iss.eof() && !iss.fail();
    }
     
    bool is_double(std::string const& input) {
      double dummy;
      return is_double(input, dummy);
    }
     
    int main() {
      std::cout << is_double("userdict") << std::endl;
      std::cout << is_double("123") << std::endl;
      std::cout << is_double("-.234") << std::endl;
      std::cout << is_double("23e10") << std::endl;
      std::cout << is_double(" 23e10") << std::endl;
      std::cout << is_double("12 Roger Marcel") << std::endl;
      return 0;
    }

  6. #6
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 266
    Points : 86
    Points
    86
    Par défaut
    Ceci est une solution valable

Discussions similaires

  1. Erreur Avec Interbase
    Par smokemon dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/10/2004, 07h24
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

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