Programme fonctionne avec "float" mais pas "double", pourquo
Résolu/Fermé
A voir également:
- Programme fonctionne avec "float" mais pas "double", pourquo
- Double ecran - Guide
- Whatsapp double sim - Guide
- Programme demarrage windows 10 - Guide
- Double appel - Guide
- Double authentification google - Guide
3 réponses
yg_be
Messages postés
23355
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
Ambassadeur
1 554
26 oct. 2020 à 16:28
26 oct. 2020 à 16:28
bonjour, "cela ne marchait pas", "ça fonctionne".
peux-tu être factuel, qu'as-tu entré, qu'as-tu vu?
peux-tu être factuel, qu'as-tu entré, qu'as-tu vu?
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
26 oct. 2020 à 16:36
26 oct. 2020 à 16:36
Bonjour,
Pour lire un
Pour lire un
Pour lire un
floatla commande est
scanf("%f", &nombreEntreTypeFloat);.
Pour lire un
doublela commande est
scanf("%lf", &nombreEntreTypeDouble);. Il ne faut pas oublier d'indiquer le bon type (avec le 'l'). Dans les
printf()pour les
doubleet les
floatc'est le même format ("%f"), dans les
scanf()on a besoin de taille exacte du type, d'où le "%f" ou "%lf".
26 oct. 2020 à 16:35
Bien sur, premièrement, en déclarant la variable nombreEntre en double (rien ne change dans le reste du code), et en lancant le programme, peu importe la valeur entrée, le programme affichait "0.000000 en euros donnent 0.00000".
J'ai ensuite changé les %f en %d en commencant par le premier : en entrant la valeur 50, le programme me renvoie "1112014848 en euros donnent 0.000000!" au lieu de "50 en euros..."
Puis le deuxieme %f seulement : en entrant 50, le programme affiche "0.000000 en euros donnent -1295595356!"
J'ai donc remis les %f (les 0.00000 me semblaient moins problematique que les autres reponses", et j'ai changé la variable double nombreEntre en float nombreEntre.
En esperant avoir ete assez clair, si non, je reste disponible.