[C] Division

Bonjour,
Je voudrai faire une division mai celle ci ne se réalise pas lorque le resulta n'esta pas entier alors que j'ai déclaré ma variable en float.

float freq_acc;
int freq;
unsigned int tps_acc;

freq_acc = freq/(tps_acc);

c peut etre a cause des differents types de variables?

8 réponses

  1. p'tet en castant
    req_acc = (float)(freq/(tps_acc)); 
    


    et puis vérifie bien avant si tps_acc != 0

    Zep3k!GnO
    1
    1. réctification:
      en faite je n'ai pa de chifrre apre la virgule ce qui est surtout quan le resultat est 0,"quelquechose"
      0
      1. non, je n'ai toujours pas de chiffre apres la virgule
        0

        1. non, je n'ai toujours pas de chiffre apres la virgule

          et si tu fais
          5 / 3 , Toujours pas de virgules ? :)

          Zep3k!Gno
          0
      2. Salut,

        le résultat de ta division est un float mais les nombres dans ton opération qui sont des int donc je te conseille de déclarer toutes tes variables en float (normalement ça devrait marcher....).
        0
        1. float freq_acc; //Ok c'est un float
          int freq; //Un int
          unsigned int tps_acc; //un autre int

          freq_acc = freq/(tps_acc);

          Donc si on regarde l'expression typée cela donne :

          float = int/uint
          Le membre de droite est donc un int, tu fais donc un cast implicite de ton float de gauche en int

          Pour avoir des chiffres apres la virgule suffit de tout déclarer en float
          0
          1. Salut,
            Si tu ne peux pas déclarer en float :
            req_acc = ((float)freq)/((float)tps_acc); 

            A+, crabs
            0
            1. salut euh ça va mdr je me sui inscri comme sa pour parlé allé a+ parlé moi^^
              0
              1. refait ta division tu as peut aitre oublier un chiffre fait le sur la calculatrice pui éssais de trouver le memme resultat
                sa va surment taider . sinon g un cite www.comment fair une division .com
                tu as surement ublier une retenut !!!!!!!!!!
                0