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

  1. Ravachol Messages postés 568 Statut Membre 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
    1. hdsafkjhga
       
      Merci bien!
      0
  2. Obeet Messages postés 4051 Date d'inscription   Statut Membre 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
  3. Enzo
     
    Ah oui c'est vrai le .0, j'oubliais.
    Merci à vous 2.
    0
  4. auscour
     
    je c'est plus fair des divis a 2 chifre et je suis en cm2
    0
    1. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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
  7. pseudow
     
    faut declarer les variables autant que float ;
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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