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 :

probléme avec le format


Sujet :

C++

  1. #1
    Membre confirmé Avatar de NELLLY
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut probléme avec le format
    salut
    j'ai le probléme suivant:
    Soit l'exemple suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    double a;
    void main(){
    a=1/50;
    }
    lors de l'affichage de a au lieu d'avoir a=0.02 j'ai a=0. Comme si il a traité le a comme étant un entier. Comment résoudre ce problème?
    merci

  2. #2
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Salut,

    Dans l'expression 1/50, 1 et 50 sont des entiers. Par conséquent, le résultat sera forcément un entier, même si tu places ce résultat dans une variable de type double.

    Pour que tu obtiennes la valeur attendue, il faut que tu écrives soit ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = static_cast<double>(1)/50
    ou plus léger :
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 634
    Par défaut
    Salut,

    Déjà, le code ne devrait pas compiler... du moins, avec un *bon* compilateur bien réglé.

    En effet, la fonction main() doit - obligatoirement - renvoyer un entier (qui vaut 0 en cas d'exécution complète réussie, 1 en cas d'échec, et - sur *nixoides - 2 en cas d'avertissement).

    Aussi, le prototype de la fonction main() devrait être
    ou, s'il faut prévoir de fournir des paramètres lors de l'appel de l'exécutable,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(int argc, char *argv[])
    En outre, il faut toujours garder en tete que les variables globales, "saymal"... il est vraiment conseillé de les éviter pour autant que faire se peut

    Ceci dit, et pour quand même donner la solution: Pour que la division donne une valeur réelle (float ou double), il faut au minimum que l'un des opérandes (que ce soit le diviseur ou le dividente) soit un réel.

    Pour indiquer que la valeur est réellement un réel, le meilleur moyen étant d'ajouter la virgule (en fait, le point, vu que les valeurs sont écrites "à l'anglaise" )
    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

Discussions similaires

  1. [SQL Server 05] Problème avec le format de la date
    Par Monkey_D.Luffy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/05/2008, 09h02
  2. Problème avec les Formats de Date
    Par sebac dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 08/01/2008, 15h30
  3. Problème avec le format des décimaux
    Par layouni dans le forum Framework .NET
    Réponses: 1
    Dernier message: 14/02/2007, 13h43
  4. Problème avec CString.Format
    Par abelman dans le forum MFC
    Réponses: 11
    Dernier message: 07/12/2006, 09h40
  5. Problème avec le format HTML pendant le parsing
    Par hatemnafti dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 28/11/2006, 10h54

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