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++Builder Discussion :

Pb avec StrToFloat


Sujet :

C++Builder

  1. #1
    Membre �clair�
    Inscrit en
    Octobre 2002
    Messages
    343
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par d�faut Pb avec StrToFloat
    Bonjour,

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    AnsiString asMontant = "30,00";
    montant =  StrToFloat(asMontant)
    Ce code marchait tr�s bien depuis d�s mois, mais je ne sais pas pourquoi, quelle mise � jour j'ai faite ou qu'est ce qui s'est pass� maintenant j'ai une exception EConvertError ... is not a valid floating point value

    Ce code fonctionnait tr�s bien et le dernier ex�cutable fonctionnel ne bug pas.

    Quelqu'un aurait une id�e de la raison de cette erreur et comment je pourrais faire pour la corriger ?

  2. #2
    Membre �clair�
    Inscrit en
    Octobre 2002
    Messages
    343
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par d�faut
    J'ai essay� de modier le code en ajoutant un bloc try - catch afin de capturer l'exception et tranformer la chaine en 00.00 au lieu de 00,00
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                            try
                            {
                                    montant =  StrToFloat(asMontant);
                            }
                            catch (EConvertError &erreur)
                            {
                                    asMontant = asMontant.SubString(0,posSeparateur-1) + "." +  asMontant.SubString(posSeparateur+1, asMontant.Length());
                            }
    Je n'ai plus d'exception, mais par contre je ne passe pas dans le bloc catch, du coup, ma variable n'est pas initialis�.

    Quelqu'un aurait une solution ou une explication ????

  3. #3
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Salut,
    le probl�me vient du s�parateur d�cimale. Perso je ne suis pas fan des try/catch puisqu'il te g�n�re quand m�me une erreur en mode pas � pas, j'utilise plut�t AnsiString.Pos(',') != 0 pour savoir si ma cha�ne comporte une virgule.

    Sinon, il faut modifier le s�parateur d�cimale. N'�tant pas sur mon PC, je ne pourrait pas t'en dire plus, il me semble que c'est decimalseparator, � rechercher.

  4. #4
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Salut kurkaine:
    Un lien sur la FAQ pour changer le separateur decimal

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par d�faut
    Bonjour,
    Moi perso je modifi le s�parateur de d�cimal dans l'evenement OnCreate de la fiche principale du projet :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    void __fastcall TFm_Principale::FormCreate(TObject *Sender)
     {
       DecimalSeparator = ".";
     }

  6. #6
    Membre �clair�
    Inscrit en
    Octobre 2002
    Messages
    343
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par d�faut
    Ok, �a marche !!! C'�tait simple � r�soudre en fait.... Ca fait plaisir!

    Par contre dans l'aide de bcb je n'ai pas trouv� cet attribut. Mais bon, l'essentiel c'est que �a marche!!!

    Merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Arrondi inexpliqu� avec StrToFloat
    Par futneguet dans le forum C++Builder
    R�ponses: 26
    Dernier message: 11/11/2013, 04h41
  2. Absence d'erreur d�routante avec StrToFloat
    Par DanCode dans le forum D�buter
    R�ponses: 5
    Dernier message: 01/03/2010, 00h16
  3. R�ponses: 3
    Dernier message: 17/03/2009, 13h51
  4. [Delphi 6] probleme de precision avec StrToFloat()
    Par ludovic tambour dans le forum Delphi
    R�ponses: 12
    Dernier message: 29/11/2006, 17h17
  5. probleme avec strtofloat
    Par copeau31 dans le forum Langage
    R�ponses: 6
    Dernier message: 20/01/2006, 19h24

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