Division en C

float variable;

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

Pourquoi il m'affiche 0 au lieu de 0.125 ?

Merci

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. 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)
    1. Merci bien!
  2. faut declarer les variables autant que float ;
    1. Contributeur
      Sauf que 1 et 8 ne sont pas des variables... Mais la solution a déjà été donnée il y a 8 ans ;-)))
  3. il faut tt simplement ecrir

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

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

    bonne chance
    1. Contributeur
      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;
  4. je c'est plus fair des divis a 2 chifre et je suis en cm2
    1. 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û
  5. Salut,
    A la limite (long)1/(long)8 aussi je crois...
    Plus pratique dans le cas de variables...

    Le TeebObeeT ignoré de la moche...