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 :

Comment limiter le nombre de chiffre après la virgule ?


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 148
    Points : 83
    Points
    83
    Par défaut Comment limiter le nombre de chiffre après la virgule ?
    Salut à tous,

    Je n'ai vraiment pas le temps pour regarder à la FAQ car je dois déposer mon mémoire demain.

    Quand j'exécute mon programme, par fois j'ai l'erreur suivante :
    "Floating point overflow"

    C'est pour cette raison que j'ai pensé à limité le nombre de chiffres après la virgule.

    Merci de me répondre.

    A bientôt

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 69
    Points
    69
    Par défaut
    Salut,

    Essaie ceci je pense que sa doit marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShowMessage(AnsiString (tonfloat).SubString(0,4));
    Cela t'affichera les 4 premiers caractères de la chaine tonfloat.


    A+

  3. #3
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    Citation Envoyé par Hoopsy
    Je n'ai vraiment pas le temps pour regarder à la FAQ car je dois déposer mon mémoire demain.
    énorme ça!!! pas vraiment dans l'esprit du forum...bref...

    t'as pas non plus eu le temps de

    ni même de penser à Round?

    trouvé en 5 s dans l'aide, RoundTo devrait t'orienter

    RoundTo(1234567, 3) 1234000
    RoundTo(1.234, -2) 1.23
    RoundTo(1.235, -2) 1.24
    RoundTo(1.245, -2) 1.24
    EDIT : mais c vrai que ça arrondi..tu veux juste couper?
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  4. #4
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    Citation Envoyé par Galip
    Salut,

    Essaie ceci je pense que sa doit marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShowMessage(AnsiString (tonfloat).SubString(0,4));
    Cela t'affichera les 4 premiers caractères de la chaine tonfloat.


    A+
    donc avec 112.45678...ça répond à sa question? pas sur...
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 69
    Points
    69
    Par défaut
    En ajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AnsiString (tonfloat).SubString(AnsiString (tonfloat).Length,4);
    La je pense que sa répond à la question, je n'ai pas Borland sous la main, donc je ne peu pas tester cette solution.

    +

  6. #6
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 148
    Points : 83
    Points
    83
    Par défaut
    Re salut,

    Pardonner mon comportement. C'est vrai que ce n'est pas la meuilleure manière de faire.

    J'ai essayé la fonction RoundTo mais ça n'a pas marché, même en ajoutant :

    Pour l'autre proposition, je suis en train de l'essayer.

    Merci pour vos réponse et pardon encore une fois.

    A bientôt

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 69
    Points
    69
    Par défaut
    Si tout fonctionne comme tu le souhaites n'oublie pas le bouton

  8. #8
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    Citation Envoyé par Hoopsy
    Re salut,

    J'ai essayé la fonction RoundTo mais ça n'a pas marché, même en ajoutant :
    tu veux dire que ça compile pas??c'est basique RoundTo..ça devrait pas poser de problème
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  9. #9
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 148
    Points : 83
    Points
    83
    Par défaut
    Salut say,

    Excusez-moi de ne pas vous avoir écrit plus tôt.

    Exactement, C++ ne compile pas. L'erreur est la suivante :

    E2268 Call to undifined function 'RoundTo'
    Il faut savoir que je travaille avec C++ Builder5. Peut être c'est pour cette raison que ça ne fonctionne pas ???????

    J'ai cherché cette fonction dans l'aide de C++ mais je ne l'ai pas trouvé.

    J'essayerai l'autre proposition et je vous dirai si ça marche.

    A bientôt

  10. #10
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Salut !
    Citation Envoyé par Hoopsy
    Exactement, C++ ne compile pas.
    Remplace :
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <math.hpp>
    Seulement, je crois pas que ton problème vient de l'arrondissement des valeurs flottantes...

    Bonne chance !
    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  11. #11
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    salut!!
    stp c'est quoi la difference entre math.h et math.cpp?
    merci

  12. #12
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    math.h est le fichier ou est définit toutes les variables et les fonctions, le fichier math.cpp est le fichier ou l'on met le code de toutes les fonctions.
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  13. #13
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    merci!

  14. #14
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 148
    Points : 83
    Points
    83
    Par défaut
    Salut à tous,

    J'ai essayé la proposition de Interruption13h mais malheureusement ça ne marche toujours pas. J'ai la même erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Call to undefined function 'RoundTo'
    Je continue à chercher.

    A bientôt

  15. #15
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Pourquoi ne pas utiliser la fonction FormatFloat ? Regarde dans l'aide comment elle fonctionne, a mon avis c'est la solution.
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  16. #16
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 148
    Points : 83
    Points
    83
    Par défaut
    Salut pottiez,

    J'ai fais des recherches dans l'aide de C++ comme vous me l'aviez dit et j'ai trouvé la fonction que je recherchais .

    La fonction est : FloatToStrF, elle arrondit le float.

    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    float x=0.78787;
    Edit1->Text = FloatToStrF(x,ffFixed,4,2);
    }
    Le résultat donné est : 0,79 (c'est à nous de choisir le nombre de chiffres après la virgule, moi j'ai choisi deux chiffres).

    Merci encore pour votre aide.

    A bientôt

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

Discussions similaires

  1. [C#] Limiter le nombre de chiffre apres la virgule ?
    Par MaxiMax dans le forum ASP.NET
    Réponses: 3
    Dernier message: 01/08/2011, 14h20
  2. Réponses: 3
    Dernier message: 03/05/2008, 16h44
  3. Réponses: 9
    Dernier message: 30/07/2007, 12h16
  4. Comment fixer le nombre de chiffre après la virgule d'un flottant
    Par moon93 dans le forum Général Python
    Réponses: 1
    Dernier message: 15/06/2007, 16h49
  5. Comment imposer un nombre de chiffre après la virgule
    Par Yagami_Raito dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2007, 10h24

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