Warning a cause de Structures et Float... - C - Programmation
Marsh Posté le 03-04-2005 à 12:17:10
finch911 a écrit : j'ai pas mal de warning de ce type lorsque je compile mon programme |
Passe tout en 'double'. C'est le type natif pour les calculs en virgule flottante. 'float' n'est utilise que pour réduire la taille des gros volumes de données (avec une perte de précision, bien sûr).
Marsh Posté le 03-04-2005 à 14:03:47
Emmanuel Delahaye a écrit : Passe tout en 'double'. C'est le type natif pour les calculs en virgule flottante. 'float' n'est utilise que pour réduire la taille des gros volumes de données (avec une perte de précision, bien sûr). |
bof, moi je passe tout en float. C99 autorise que les calculs soit fait en float ... et c'est significativement plus rapide sur mes applications.
Mais la vrai question était : comment écrire une constante littérale ?
3.14 un double
3.14f un float
Marsh Posté le 05-04-2005 à 03:47:10
Tout à fait, les float ne sont pas à bannir. C'est plus rapide sur certaines architectres. AMD par exemple recommande d'utiliser float plutôt que double pour la rapidité.
Marsh Posté le 03-04-2005 à 12:01:32
Bonjour,
j'ai pas mal de warning de ce type lorsque je compile mon programme
"warning C4305: 'initializing' : truncation from 'const double ' to 'float '"
En fait, mon programme contient une structures:
typedef struct {
int numonenclature;
char intituler [50];
float montantvipo;
float montantao;
float ticketmod;
} examen;
Je déclare le tableau de la structures avec ces valeurs:
examen tabe[LGMAXE]={470750,"EGG",15.48,13.16,2.32,
475812,"ECG effort",30.58,26,4.58,
469814,"Echo couleur",62.32,59.84,2.48,
475893,"Contrôle VVI",30.16,25.64,4.52,
477893,"Contrôle défibrillateur",100.54,91.86,8.68,
475650,"Doppler bilatéral",15.08,12.82,2.26,
475532,"Epreuve de stress",25.13,21.37,3.76,
476210,"Holter",65.23,56.55,8.68};
Il me met 3 Warning (cité plus haut) par ligne, correspondant je suppose au 3 nombre float que j'initiialise dans chaque ligne.
Je vois vraiment pas ce qui pose problème!?!