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 :

float to int


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 19
    Par défaut float to int
    Bonjour,

    voilà, en fait j'aurais besoin de savoir un truc tout bête, je voudrais savoir comment je pourrais transformer un float en un int, en tronquant le résultant.

    Par exemple si j'ai 2,4 le transformer en 2, si j'ai 0,5, le transformer en 0, etc.


    Merci d'avance .

  2. #2
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    float a=3.14;
    int b=(int)a;

  3. #3
    Membre éclairé
    Avatar de warubi
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 399
    Par défaut

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par poof65
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    float a=3.14;
    int b=(int)a;
    En C++, pas en C...

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 19
    Par défaut
    ok merci , j'ai parcouru la FAQ pourtant ... bizarre, c'est quoi le mot clef que j'aurais du regarder pour ce genre d'opération ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Les conversions implicites ne suffisent pas ?

  7. #7
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Par défaut
    Citation Envoyé par Miles
    En C++, pas en C...
    Bah dans un code C++ ça fonctionne et c'est ce que j'utilise car c'est le plus simple.
    Sinon en C++ pur, il y a bien sûr le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    float a=3.14;
    int b=static_cast<int>a;

  8. #8
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Il n'y a pas de conversion implicite car il y a perte d'information.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int  iVal = (int) fVal;
    Est le code le plus lent. Stall FPU, ALU et reset au passage du pipeline CPU (certains 'flags' peuvent être levés par l'opération).

    Si le but est de transformer un flottant IEEE - 32 bits vers un entier 32 bits, il est possible de le faire rien qu'avec des additions/soustractions.
    C'est environ 30 fois plus rapide que le cast (même intrinsic). Maintenant, si la vitesse n'est pas importante, ce code est tout de même le plus sur !

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    Citation Envoyé par poof65
    Bah dans un code C++ ça fonctionne et c'est ce que j'utilise car c'est le plus simple.
    Sinon en C++ pur, il y a bien sûr le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    float a=3.14;
    int b=static_cast<int>a;
    "ça fonctionne", mais les nouveaux cast C++ ont été créé... pour que l'on s'en serve.

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

Discussions similaires

  1. problème entre float et int
    Par F.R.E.D dans le forum Débuter
    Réponses: 2
    Dernier message: 09/09/2008, 02h35
  2. Conversion float en int?
    Par romain1 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 06/09/2008, 18h44
  3. cast float vers int
    Par planeur2007 dans le forum C
    Réponses: 5
    Dernier message: 13/03/2007, 18h39
  4. probleme de conversion float en int
    Par murreya dans le forum C++
    Réponses: 2
    Dernier message: 17/12/2005, 15h27
  5. Conversion float vers int
    Par vargasvan dans le forum C
    Réponses: 2
    Dernier message: 05/10/2005, 17h29

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