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 et division en c++!


Sujet :

C++

Vue hybride

bill86 Float et division en c++! 04/10/2010, 22h54
Joel F int/int == int fait... 04/10/2010, 23h27
bill86 Je n'ai jamais pensé à cette... 04/10/2010, 23h35
Jean-Marc.Bourguet Longue tradition commencée en... 05/10/2010, 04h09
koala01 Salut, En fait, c'est un... 05/10/2010, 09h57
Joel F La plus grande précision tu... 05/10/2010, 10h37
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut Float et division en c++!
    Bonsoir,

    Une question bidon qui m'a couté deux heures de recherche en vain!
    J'espère trouver une réponse ici, parceque là i'm overloaded!!!
    J'aimerais faire la division de deux entiers mais le programme m'affiche toujours zéro :
    voilà un exemple de code parmi 100 que j'avais essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <iomanip>
    using namespace std;
    maint()
    {
    int x=300;
    int y=400;
    ...
    cout << fixed << setprecision (5)<<float(x/y) ;
    }
    Le résultat est toujours zéro.

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    int/int == int

    fait float(x)/y

  3. #3
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    Je n'ai jamais pensé à cette réponse
    ça a marché, merci beaucoup Joel F.
    Mais comment ça se fait qu'un entier divisé par entier donne un entier?
    ça ne marche qu'en c++

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par bill86 Voir le message
    Mais comment ça se fait qu'un entier divisé par entier donne un entier?
    ça ne marche qu'en c++
    Longue tradition commencée en FORTRAN.

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,
    Citation Envoyé par bill86 Voir le message
    Je n'ai jamais pensé à cette réponse
    ça a marché, merci beaucoup Joel F.
    Mais comment ça se fait qu'un entier divisé par entier donne un entier?
    ça ne marche qu'en c++
    En fait, c'est un problème propre à tous les langages typés (comprend: attentifs au type des données manipulés).

    Il n'est, en effet, pas possible de définir de règle précise de conversion:

    D'un coté, la division de deux entiers peut parfaitement donner un entier: il suffit de se remémorer les tables de multiplication apprises en primaire

    De l'autre, tu serais confronté au problème du choix du type réel à utiliser: certaines divisions se contenteront parfaitement d'un réel "simple précision", alors que d'autres nécessiteraient un réel "double précision".

    Je présumes donc (car je n'étais pas présent quand la décision a été prise pour frotran ) que les décideurs ont choisi la règle la plus simple à exprimer et à implémenter: le résultat d'une division se fait dans le type qui présente la plus petite précision, tout opérande confondu
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    La plus grande précision tu veux dire ?

  7. #7
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Citation Envoyé par Joel F Voir le message
    La plus grande précision tu veux dire ?
    On va dire
    La précision permettant de représenter le moins de nombre après la virgule
    de manière à éviter toute ambigüité
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. Formatter une division de float en string
    Par stephane.julien dans le forum C#
    Réponses: 3
    Dernier message: 25/10/2007, 16h15
  2. Division et float
    Par Franck26 dans le forum C
    Réponses: 4
    Dernier message: 10/01/2007, 00h18
  3. Réponses: 4
    Dernier message: 29/08/2006, 15h07
  4. Pb de formatage de champs de type float
    Par FrankyNormand dans le forum XMLRAD
    Réponses: 9
    Dernier message: 05/05/2005, 12h37
  5. probleme d'insertion d'un Float
    Par neness dans le forum Débuter
    Réponses: 3
    Dernier message: 07/01/2003, 12h32

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