Bonjour à tous
Y a-t-il une explication au fait que l'expression suivante :
(int) (10.2/0.1)
retourne 101 ?
Merci d'avance
Bonjour à tous
Y a-t-il une explication au fait que l'expression suivante :
(int) (10.2/0.1)
retourne 101 ?
Merci d'avance
Oui! 10.2/0.1 est une expression constante de type double. Les opérations mathématiques mettant en jeu des nombres flottant ne sont par définition pas exacts. 10.2/0.1 qui vaut 102 en mathématiques, peut valoir ici 101.99999999<...> à cause de problèmes d'arrondis. Lorsqu'on caste un double en entier de type int, cela revient à tronquer la partie fractionnaire. Et (int) 101.999999<...> vaut 101.Envoyé par planeur2007
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Si le cast tronque, comment fait-on pour arrondir au plus proche ?
floor(n+0.5) ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Tu y est presque
http://c.developpez.com/faq/c/?page=..._round_correct
Est-ce que quelqu'un peut m'expliquer pourquoi faire un test dans cette solution. A mon avis floor(x+0.5) et ceil(x-0.5) doivent donner le même résultat pour des données positives comme négatives.Envoyé par jln13
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Oui, les approximations de la représentation interne des flottants.Envoyé par planeur2007
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include <stdio.h> int main (void) { double x = 10.2 / 0.1; printf ("%.15f %d\n", x, (int) x); return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 101.999999999999990 101 Press ENTER to continue.
Pas de Wi-Fi à la maison : CPL
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager