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. Salut,
    A la limite (long)1/(long)8 aussi je crois...
    Plus pratique dans le cas de variables...

    Le TeebObeeT ignoré de la moche...
    1. 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û
    2. 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;
    3. 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 ;-)))