Bonjour,
bah qu'est-ce que ça donne quand on fait la somme entre un int et un float et qu'on mette le résultat dans un int ou un float ?
Merci
Version imprimable
Bonjour,
bah qu'est-ce que ça donne quand on fait la somme entre un int et un float et qu'on mette le résultat dans un int ou un float ?
Merci
bonjour,
par exemple,
te donnera:Code:
1
2
3
4
5
6 int i = 1; float f = 3.0; int j = f + i; float l = f + i; printf("int %d \n",j); printf("float %f \n",l);
int 4
float 4.000000
Mettre la somme dans un "int" va tronquer la partie décimale de la somme.
Mettre la somme dans un "float" va ... beh faire comme une somme normale :p
Merci pour les précisions !
L'entier va être converti en float (avec peut être une perte de précision), la somme va être effectuée et donner un résultat float.
Si le résultat est mis dans un entier, la partie décimale va être abandonnée et la partie entière placée dans l'entier.
Si la partie entière ne tient pas dans l'entier, le résultat est indéfini.
Tu peux mettre en place des solutions simple qui vont te permettre de pouvoir gérer un petit imprévu comme celui-ci.
Une simple ligne :
De cette façon tu enlève les "probables" désagrément que tu viens de cités, Ram :)Code:
1
2
3 monInt=5; monIntEnFloat = monInt; if(monIntEnFloat >= 4.5) monIntEnFloat = 5.0;
(Enfin je sais bien que je t'apprend rien, mais il est vrai que ce que tu viens de dire il faut y penser)
d'où le fait d'intialiser un flottant avec un .0 si on veut être sûr qu'il correspond à un entier :
Code:
1
2
3
4
5 float f ; f = 5. ; /* na garantit rien sur les décimales */ f= 5.0 ; /* garanti que les décimales signifactives sont à zéro */
crois-tu, ou es-tu sûr ?
J'en suis sûr