[C] Division

Fermé
jéj - 12 janv. 2006 à 14:59
 jade chauni - 15 avril 2008 à 15:53
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

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
12 janv. 2006 à 15:41
p'tet en castant
req_acc = (float)(freq/(tps_acc)); 


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

Zep3k!GnO
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
non, je n'ai toujours pas de chiffre apres la virgule
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
12 janv. 2006 à 16:09

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

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

Zep3k!Gno
0
matmat27 Messages postés 594 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 18 novembre 2010 147
12 janv. 2006 à 17:08
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Misdrhaal Messages postés 49 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 23 février 2006 16
12 janv. 2006 à 17:32
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
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
12 janv. 2006 à 17:42
Salut,
Si tu ne peux pas déclarer en float :
req_acc = ((float)freq)/((float)tps_acc); 

A+, crabs
0
salut euh ça va mdr je me sui inscri comme sa pour parlé allé a+ parlé moi^^
0
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