Division en C

Enzo -  
 hdsafkjhga -
float variable;

variable = 1/8;
printf("%f\n", variable);

Pourquoi il m'affiche 0 au lieu de 0.125 ?

Merci

6 réponses

Ravachol Messages postés 566 Date d'inscription   Statut Membre Dernière intervention   120
 
Salut,
Grosso modo en C quand tu divises 2 entiers tu obtient un quotient entier qui est une valeur approchée du quotient exact.
Ce qui fait 0 dans ton cas, pour obtenir le quotient exact il faut écrire 1.0/8 ou bien 1/8.0, c'est comme ça.

A++

C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)
10
hdsafkjhga
 
Merci bien!
0
Obeet Messages postés 1766 Date d'inscription   Statut Modérateur Dernière intervention   30
 
Salut,
A la limite (long)1/(long)8 aussi je crois...
Plus pratique dans le cas de variables...

Le TeebObeeT ignoré de la moche...
3
Enzo
 
Ah oui c'est vrai le .0, j'oubliais.
Merci à vous 2.
0
auscour
 
je c'est plus fair des divis a 2 chifre et je suis en cm2
0
daronmaster Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   44
 
vas voir ce site : http://classe9.free.fr/spip.php?article831

je pense que cela peut t'aider et à cette heure ci tu ne devrait pas etre sur un ordinateur, mais en train de travailler.

Tchû
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hamzaadl
 
il faut tt simplement ecrir

printf( " la variable est : %.3f ", variable);

le %.3 désigne 3 nombre aprés la virgule

bonne chance
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Non. Si tu mets %.3f, t'obtiendras 0.000.
La bonne raison a déjà été donnée. Il faut mettre variable=1.0/8; ou variable=(float)/8;
0
pseudow
 
faut declarer les variables autant que float ;
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Sauf que 1 et 8 ne sont pas des variables... Mais la solution a déjà été donnée il y a 8 ans ;-)))
0