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 :

double, long,float ,que de confusions.


Sujet :

C

  1. #21
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    getch viens il me semble de conio.h qui n'est que sur Windows.
    On retrouve également getch() avec un comportement similaire à dans curses et les implantations ncurses (unixoïde) ou PDCurses (multi-plateformes).

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  2. #22
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    bonsoir tout le monde :

    je suis toujours en train de chercher c'est que le programme se compile malgré
    les warnings mais je puis paraitre bête mais le cours de référence me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Nom du type	         Nombres stockables
    char 	            -128 à 127
    int 	             -2 147 483 648 à 2 147 483 647
    long 	            -2 147 483 648 à 2 147 483 647
    float 	             -3.4 x 10 puissance 38 à 3.4 x 10 puissance 38
    double 	           -1.7 x 10 puissance 308 à 1.7 x 10 puissance 308
    donc suivant le message d'erreur 6500000000>1.7 * 10 puissance 308. ???
    un expert pourrait m'éclairer.
    (c'est dingue mais ça fait plus de six jour qu'un problème à l'apparence bénigne me tourmente).
    merci d'avance.

  3. #23
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 977
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 977
    Par défaut
    Hio,

    Montre-nous où en est exactement ton programme, et le(s) message(s) et warning(s) obtenus, sinon il nous va falloir jouer aux devinettes.

  4. #24
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    bonsoir

    mon programme se trouve sur la page précédente j'ai simplement changé %ld
    par %lf car c'est un double.

  5. #25
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    bonsoir

    pardon droggo voici le lien c'est plus simple http://www.developpez.net/forums/sho...08#post2638008


    voila voilu.

  6. #26
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Pugebad Voir le message
    excuse moi franck.h, je suis etudiant en info et depuis le debut on utilise getch()
    quelle est la diff. avec getchar() ?

    de plus , je narrive pas a voir les diff. entre le C et le C++
    Purée, mais c'est quoi encore cette école...

  7. #27
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Skyrunner Voir le message
    Pour connaitre la taille tu peux utiliser l'opérateur sizeof.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%d\n", sizeof(int));
    Remplace int par le type voulu.
    Tu fais ça sur un DSP 56156, ça donne 1 et tu n'es pas bien avancé...
    De plus pour connaitre la taille que le type peut contenir tu as des constantes définies dans limits.h et float.h
    http://en.wikipedia.org/wiki/Limits.h
    http://en.wikipedia.org/wiki/Float.h
    Ca, c'est la bonne méthode. Il faut raisonner en plage de valeurs et non en taille d'objet...

  8. #28
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par abdelilah Voir le message
    je suis toujours en train de chercher c'est que le programme se compile malgré
    les warnings mais je puis paraitre bête mais le cours de référence me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Nom du type	         Nombres stockables
    char 	            -128 à 127
    int 	             -2 147 483 648 à 2 147 483 647
    long 	            -2 147 483 648 à 2 147 483 647
    float 	             -3.4 x 10 puissance 38 à 3.4 x 10 puissance 38
    double 	           -1.7 x 10 puissance 308 à 1.7 x 10 puissance 308
    Attention ! Les valeurs que tu indiques sont celles d'une implémentation particulière du C. J'indique ici :

    http://emmanuel-delahaye.developpez.com/init_c.htm#type

    les valeurs minimales garanties par le langage C.

    Les valeurs de ton implémentation sont dans <limits.h> et <float.h>, comme déjà indiqué.

    Pour ton problème, tu dois utiliser le type qui correspond à tes besoins. float et double conviennent. Il faut cependant garder en tête que l'usage de types réels (float et double) implique des approximations, car toutes les valeurs ne sont pas représentables sous la forme binaire 'virgule flottante' (signe, mantisse, exposant).

  9. #29
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    bonjour

    je ne sais si j'ai dérapé quelque part mais il semblerait que float soit moi précis que double serait
    ce faux si on préfère double à float car don mon code en mettant double au lieu de float j'obtiens
    tout autre chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <stdio.h>
    #include <stdlib.h>
     
    main()
     {
    double soldeBanque = 6500000000.0 ;
    printf("vous avez %f dirhams en banque\n", soldeBanque);
     
    return 0; 
     }
    il m'affiche "vous avez 6500000000.000000 dirhams en banque"

    alors qu'avec float :

    il m'affiche "vous avez 6499999744.000000 dirhams en banque"

    quelqu'un pour m'explique ce qui ce passe dans cette mémoire ou plutot le fonctionnement de float/double.

    y aurait il également une méthode pour éliminer les zéros après la virgule tout en gardant double comme type car dans mon cas il s'agit bien d'un entier.

    merci à toute les personnes qui ont répondue à mes nombreuses questions
    de débutant.

  10. #30
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    Emmanuel Delahaye a dit
    Pour ton problème, tu dois utiliser le type qui correspond à tes besoins. float et double conviennent. Il faut cependant garder en tête que l'usage de types réels (float et double) implique des approximations, car toutes les valeurs ne sont pas représentables sous la forme binaire 'virgule flottante' (signe, mantisse, exposant).
    je commence à comprendre d'où le résultat inexacte affiché par le format float.

  11. #31
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par abdelilah Voir le message
    je ne sais si j'ai dérapé quelque part mais il semblerait que float soit moi précis que double serait
    ce faux si on préfère double à float car don mon code en mettant double au lieu de float j'obtiens
    tout autre chose :
    Hum, je suppose que le français n'est pas ta langue maternelle, mais arrives tu à relire cette phrase et à la comprendre ? Je rappelle qu'il existe 2 éléments importants de la compréhension d'un texte écrit :

    - La capitalisation
    - La ponctuation.

    (et je ne parle pas de l'orthographe...)

    Après hésitations, j'en arrive à :

    "Je ne sais si j'ai dérapé quelque part mais il semblerait que float soit moi précis que double. Serait ce faux si on préfère double à float car don mon code en mettant double au lieu de float j'obtiens tout autre chose ?"

    Ou encore...

    "Je ne sais si j'ai dérapé quelque part mais il semblerait que float soit moins précis que double. Serait-ce faux si on préfère double à float car dans mon code en mettant double au lieu de float j'obtiens tout autre chose ?"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <stdio.h>
    #include <stdlib.h>
     
    main()
     {
    double soldeBanque = 6500000000.0 ;
    printf("vous avez %f dirhams en banque\n", soldeBanque);
     
    return 0; 
     }
    il m'affiche "vous avez 6500000000.000000 dirhams en banque"

    alors qu'avec float :

    il m'affiche "vous avez 6499999744.000000 dirhams en banque"

    quelqu'un pour m'explique ce qui ce passe dans cette mémoire ou plutot le fonctionnement de float/double.
    Effectivement, la précision est meilleure avec les double. Les float sont une version 'courte' des double, parfois utile quand on a un gros tableau. La réduction de précision est parfois le prix à payer pour gagner de la place...

    Mais d'une manière générale et surtout dans les calculs, on utilise double.

    y aurait il également une méthode pour éliminer les zéros après la virgule tout en gardant double comme type car dans mon cas il s'agit bien d'un entier.
    "%.0f" ou "%g"
    merci à toute les personnes qui ont répondue à mes nombreuses questions
    de débutant.
    Toutes ces questions sont basiques et trouvent leurs réponses dans n'importe quel livre ou tutoriel de C... Il y a des références sur ce site (et le mien...)

  12. #32
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    Bonsoir

    En effet Emmanuel Delahaye le français n'est pas ma langue maternelle et j'en suis fier,ça n'est pas pour t'offenser mais je connais la ponctuation,ça n'est pas la mer à boire seulement voilà, des fois j'écris rapidement faute de temps,normale je bosse 8 des fois jusqu'à 10 heures pour financer mes études ,en posant mes messages sur un tel forum j'espérais de l'aide et non des remarques à tout bout de champs.
    Ceci d'une part,d'autre part je ne pense pas que l'expression française me fasse défaut d'ailleurs j'arrive à exprimer mes idées parfaitement bien je ne pense pas que vous puissiez faire de même en parlant ma langue et si vous arrivez un prononcer une seule phrase correctement je vous tire mon chapeau bas pour saluer cette performance.
    je parle trois langues, à mon âge c'est déjà pas mal et je remercie dieu que je parle l'arabe car les autres langues (le français en l'occurrence) paraissent comme des amuse-gueule je parle en connaissance de cause puisque je parle français depuis l'âge de 3 ans .
    Emmanuel Delahaye
    Toutes ces questions sont basiques et trouvent leur réponse dans n'importe quel livre ou tutoriel de C... Il y a des références sur ce site (et le mien...)
    je dirais plutôt :
    Toutes ces questions sont basiques et trouvent leurS réponseS .....

    vous êtes administrateur et vous pouvez me bannir pour punir mon franc parler, si ça vous tente faites le,mais épargnez moi ce genre de commentaires je n'en ai pas besoin, mon père ma toujours dit ''on peut dire à quelqu'un merde d'une façon poli sans que cela ne le gène'' inspirez vous en et balayons devant nos portes avant d'aller balayer chez les autres.

  13. #33
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par abdelilah Voir le message
    je dirais plutôt :
    Toutes ces questions sont basiques et trouvent leurS réponseS .....
    C'est de bonne guerre !

    Merci pour la correction, toujours acceptée avec le sourire, surtout compte tenu de mon niveau dramatique en orthographe (mais au moins, j'essaye de me relire et de me corriger...)

    N'oublie pas quand même que tu as eu des réponses à tes questions...

  14. #34
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    bonsoir

    avec cœur joie j'accepte toutes les remarques ,(je fais gaffe au clavier ) c'est vrai j'ai eu réponse à mes (nombreuses) questions et je n'ai eu cesse de remercier lecteurs, car il ne faut pas être ingrat envers les gens et je le redis mille mercis à toi et à toutes les personnes qui ont daigné m'aider et me transmettre leur savoir si chèrement obtenu

    prends soin de toi et encore une fois merci pour cette inestimable aide

  15. #35
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 869
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par abdelilah Voir le message
    Toutes ces questions sont basiques et trouvent leurS réponseS .....
    Ouahou, joli coup que d'avoir réussi à trouver des fautes chez Emmanuel !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  16. #36
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ouahou, joli coup que d'avoir réussi à trouver des fautes chez Emmanuel !!!
    Boaf, trop facile...

  17. #37
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    Bonjour

    je vous assure, s'il analyse mon code il trouvera plus de fautes que de lignes justes

    mais bon tout le monde est sujet à faire des erreurs, faisons un trait sur le passé.

    Je ne peux que respecter Emmanuel Delahaye ainsi que toute personnes offrant son savoir aux gens, soyez en sûrs ce que je lis sur ce forum m'aide
    vraiment à avancer.

    encore une foi merci tout le monde.
    (inchallah je reviendrais pour d'autres questions )

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Convertion String en double ou float
    Par superjaja dans le forum C#
    Réponses: 6
    Dernier message: 31/12/2007, 14h00
  2. conversion double/long possible?
    Par filor dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2007, 18h51
  3. différence entre double et float
    Par Maria1505 dans le forum C++
    Réponses: 2
    Dernier message: 03/01/2007, 06h16
  4. du double au float
    Par yvesall dans le forum C
    Réponses: 7
    Dernier message: 10/11/2006, 17h13
  5. prototype erf : double ou float ?
    Par nicolas.puiroux dans le forum C
    Réponses: 5
    Dernier message: 07/09/2006, 11h39

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