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 :

Arrondi inexpliqué avec StrToFloat


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2002
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 109
    Par défaut Arrondi inexpliqué avec StrToFloat
    Bonjour,

    je veux récupérer une valeur saisie dans un TEdit que je veux stocké dans un float de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float test = StrToFloat(EditMO->Text) ;
    Cependant, pour certaines valeurs (ex : 2,4), test contient 2,40000000954

    Comment éviter cela (il me faut impérativement un float et pas un double)

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    Slt

    float test = RoundTo( StrToFloat(EditMO->Text) , -2 );

    -2 pour deux chiffres apres la virgule

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2002
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 109
    Par défaut
    Merci mais j'ai déjà testé RoundTo ainsi que FormatFloat mais la variable test vaut quand même 2,40000000954

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    int P = AnsiPos(",",EditMO->Text ) ;
    Edit2->Text= Edit1->Text.Delete(P+2,9999);

    donne 2,4

    Tu peux aussi faire un traitement sur les chiffres derriere la virgule pour faire ton arrondi , avant le delete bien sur

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2002
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 109
    Par défaut
    Oui mais si tu essaies de stocker le résultat dans un float, ça ne marche pas

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    int P = AnsiPos(",",EditMO->Text ) ;
    AnsiString S = EditMO->Text.Delete(P+2,9999);
    float F = StrToFloat(S);
    Qu est ce qui ne marche pas ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Citation Envoyé par futneguet Voir le message
    Bonjour,

    je veux récupérer une valeur saisie dans un TEdit que je veux stocké dans un float de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float test = StrToFloat(EditMO->Text) ;
    Cependant, pour certaines valeurs (ex : 2,4), test contient 2,40000000954

    Comment éviter cela (il me faut impérativement un float et pas un double)

    Merci
    J'ai utilisé la méthode suivante pour récupérer la vraie valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double test = StrToFloat(EditMO->Text);

Discussions similaires

  1. arrondis faux avec QString::number
    Par Somato dans le forum Débuter
    Réponses: 11
    Dernier message: 04/12/2008, 08h57
  2. div coin arrondi décomposer avec IE7 ?
    Par fiston dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/05/2007, 16h43
  3. Pb avec StrToFloat
    Par kurkaine dans le forum C++Builder
    Réponses: 5
    Dernier message: 06/12/2006, 14h16
  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