boozid
Messages postés6Date d'inscriptionmercredi 9 août 2006StatutMembreDernière intervention15 mai 2008
-
9 août 2006 à 14:48
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 2009
-
11 août 2006 à 09:14
Je débute en C, pouvez vous me dire ce qu'il ne va pas ?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
-> Mes qqes lignes de programme sont censé divisé a par b et de retourner la valeur : le pb est que qd je fais 15/2 cela ne me donne pas 7.5 mais 7.0000..
leguerinos
Messages postés5Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention11 décembre 2006 9 août 2006 à 14:58
Je n'ai encore que queleque base en C++ mais je vais essayer de t'aider.
En fait le problème provient de tes operandes c'est a dire a et b.
Si a et b sont des entiers alors a/b te renvoi un entier, par conséquent en modifiant le type de a et b cela devrait corriger ton probleme.
J'espère ne pas te dire de bétises sinon je m'en excuse d'avance.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 9 août 2006 à 15:38
Salut boozid,
pour obtenir 7.5 en divisant 15 par 2, il faut faire 15/2.0. En fait tu forces un division par un float, 2.0.
Si tes valeurs sont contenues dans des variables, c'est comme leguerinos l'a dit. Donc pour obtenir un résultat à virgule, je te propose ceci : c = b/(float)a;
Je pense (mais pas sûr) que ça ira comme ça. Si non, essaie de rajouter (float) devant b.
En ce qui concerne la valeur entière d'un chiffre à virgule, il suffit de faire :
int Valeur_entiere = (int)chiffre_a_virgule;
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
boozid
Messages postés6Date d'inscriptionmercredi 9 août 2006StatutMembreDernière intervention15 mai 2008 9 août 2006 à 15:37
merci ca marche ! ;)
même si je ne comprend pas pourquoi si je déclare la variable c en float je ne peux pas diviser a par b même s'ils sont déclaré en entier ? je ne modifie pourtant pas leur valeur...
en tt cas merci leguerinos..
et pour ma deuxième question sur la valeur entière svp ?