et si oui esk'il arrondit par defaut ou par exces dans le cas de 0.5...
merci pour vos reponses
Publicité
Posté le 05-03-2004 à 18:55:10
Taz
bisounours-codeur
Posté le 05-03-2004 à 19:08:32
les conversions qui entrainent une perte d'informations sont dépendantes de beaucoup de paramètres. si tu veux un résultat sur, utilise <math.h>
F.4 Floating to integer conversion 1 If the floating value is infinite or NaN or if the integral part of the floating value exceeds the range of the integer type, then the invalid exception is raised and the resulting value is unspecified. Whether conversion of non-integer floating values whose integral part is within the range of the integer type raises the inexact exception is unspecified.292)
F.5 Binary-decimal conversion 1 Conversion from the widest supported IEC 60559 format to decimal with DECIMAL_DIG digits and back is the identity function.293) 2 Conversions involving IEC 60559 formats follow all pertinent recommended practice. In particular, conversion between any supported IEC 60559 format and decimal with DECIMAL_DIG or fewer significant digits is correctly rounded.
destroy2k3
Posté le 05-03-2004 à 19:15:51
non c pour un toute petite operation je veut juste savoir si le c arrondi au plus proche ou s'il supprime purement et simplement les chifres apres la virgule....
Taz
bisounours-codeur
Posté le 05-03-2004 à 19:17:16
ça dépend de ton système, ton compilateur, etc ... peut pas vraiment se prononcer ... le standard impose la troncature, mais y a des compilos qui prennent des libertés
Message édité par Taz le 05-03-2004 à 19:18:49
destroy2k3
Posté le 05-03-2004 à 19:18:37
merci ...
Taz
bisounours-codeur
Posté le 05-03-2004 à 19:18:54
edit
Taz
bisounours-codeur
Posté le 05-03-2004 à 19:21:32
Code :
#include <stdio.h>
int main()
{
int i = 3.7;
printf("%d %d\n", i, 3.7);
return 0;
}
sur mon système, ça sort
3 -1717986918
le 3 tu devrais le retrouver partout, sauf sur des compilateurs vieux ou libertaires. l'autre c'est complètement dépendant du système qui fait ce qu'il veut