[C] Division
jéj
-
jade chauni -
jade chauni -
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?
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
-
p'tet en castant
req_acc = (float)(freq/(tps_acc));
et puis vérifie bien avant si tps_acc != 0
Zep3k!GnO -
réctification:
en faite je n'ai pa de chifrre apre la virgule ce qui est surtout quan le resultat est 0,"quelquechose" -
-
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....). -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
Salut,
Si tu ne peux pas déclarer en float :req_acc = ((float)freq)/((float)tps_acc);
A+, crabs -
-
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 !!!!!!!!!!