Otez-moi d'un doute;...

Otez-moi d'un doute;... - C++ - Programmation

Marsh Posté le 04-09-2002 à 09:51:02    

Voila ca fait un bout de temps que j'ai pas fait de C, mais là quand même...
 

Code :
  1. float a = qqchose_qui_fait_un_float();
  2. a /= 20;
  3. if (a <= 0.001) {......


 
L'informaticien me dit que ca peut pas marcher parce que la division me renvoie un entier. Hors, je suis à peu près sur que float / int = float, non ?
J'ai pas bon ?


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 04-09-2002 à 09:51:02   

Reply

Marsh Posté le 04-09-2002 à 09:53:08    

R3g a écrit a écrit :

Voila ca fait un bout de temps que j'ai pas fait de C, mais là quand même...
 

Code :
  1. float a = qqchose_qui_fait_un_float();
  2. a /= 20;
  3. if (a <= 0.001) {......


 
L'informaticien me dit que ca peut pas marcher parce que la division me renvoie un entier. Hors, je suis à peu près sur que float / int = float, non ?
J'ai pas bon ?




 
Dans le doute:
 

Code :
  1. float a = qqchose_qui_fait_un_float();
  2. a /= 20.;
  3. if (a <= 0.001) {......


 
Mais me semble que ça marche.


---------------
Le Tyran
Reply

Marsh Posté le 04-09-2002 à 09:57:51    

merci, ca par contre j'etais pas sur que ca marche en C


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 05-09-2002 à 03:37:10    

R3g a écrit a écrit :

je suis à peu près sur que float / int = float, non ?
J'ai pas bon ?


100% correct, t'as tout bon.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 06-09-2002 à 03:04:47    

Oups, rectification:

Code :
  1. float a=...;
  2. a= a/2; //ce qu'on écrit
  3. a= (float)( (double)a / (double)2 ); //ce que C/C++ font.


Message édité par Musaran le 06-09-2002 à 03:05:23

---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 06-09-2002 à 07:27:08    

si a est un float, la division se fera dans le type du conteneur...

Reply

Marsh Posté le 07-09-2002 à 02:25:13    

Je me suis embrouillé tout seul.
 
Effectivement, les langages C/C++ convertissent au plus fort des opérandes, selon cette échelle:
bool
char
short
int
long
float
double

 
Sauf avec la liste d'arguments variable de fonctions comme printf.
float y est convertit en double, et char en int.
 
 
Par contre, les processeurs intel convertissent touts les flottants en long double (80 bits) pour les calculs.
 
J'espère que j'ai pas dit de bêtise(s) cette fois.


Message édité par Musaran le 07-09-2002 à 02:25:43

---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed