[débutant]langage c

Résolu/Fermé
yassinee Messages postés 233 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 26 novembre 2011 - 17 nov. 2008 à 16:52
yassinee Messages postés 233 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 26 novembre 2011 - 18 nov. 2008 à 13:06
Bonjour,
j'aimerais faire une simple multiplication entre 2 variables donc:
float a=4, b=1/10, var;

var=a*b;

printf("%f",var);
NORMALEMENT le résulta est 4*1/10=0.4 PAR CONTRE le résultat est 0
merci de d'avance

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
17 nov. 2008 à 17:01
Salut,

Et non, en C, 1/10 = 0 car c'est une division d'entiers.
Donc le résultat est normal.
Au lieu de : float b=1/10; fais float b=1.0 / 10. Ainsi vaudra 0.1.
Et tout rentrera dans l'ordre ;)

Cdlt
3
bonjour,
au lieu de faire %f essaie de faire %.2f ça va t'afficher deux chiifres après la virgule.
cordialement.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
17 nov. 2008 à 17:29
Oui, ça affichera 0.00 au lieu de 0. Mais ça règle pas le problème ;).
0
yassinee Messages postés 233 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 26 novembre 2011 27
18 nov. 2008 à 13:06
Merci fiddy ça marche
0