OVH Cloud OVH Cloud

Question d'arrondissement

12 réponses
Avatar
Philippe Massicotte
Bonjour à tous.

Tout d'abord excusé moi si je ne suis pas au bon endroit pour ma question.

Je suis présentement un cours de calcul numérique et je dois programmer une
méthode bien précise (Runge-Kutta pour ceux que cela pourrait intéresser).

Si je fais

double j = 1 * 0.1;

mon compilateur (VC++ .NET 2003) me donne comme valeur ceci :
0.10000000000000001

Le 1 de la fin fait en sorte que je cumule une erreur tout au long du
déroulement qui s'amplifie bien entendu.

Quelqu'un peut m'expliquer comment résoudre cette impasse ?

Merci à l'avance,

Philippe

2 réponses

1 2
Avatar
PendLoup
Bonjour,

"Christian ASTOR" wrote in message
news:4015730e$0$6972$
PendLoup a écrit:


> Dans le premier cas : double j = 0.1; donne 0.10000000000000001
> alors qu'avec Visual 6 j'obtiens 0.1

J'en doute...



Pour voir ce résultat j'ai juste posé un point d'arrêt après cette ligne et
j'ai visualisé j dans visual.
J'ai bien 2 résultats différents.


a+

Fred D.
--
Enlevez NoSpam de mon adresse pour me répondre
Avatar
PendLoup
Ok.
Me méfierai maintenant :)

a+

Fred D.

--
Enlevez NoSpam de mon adresse pour me répondre
"Christian ASTOR" wrote in message
news:40161939$0$6978$
PendLoup a écrit:


> Pour voir ce résultat j'ai juste posé un point d'arrêt après cette ligne


et
> j'ai visualisé j dans visual.
> J'ai bien 2 résultats différents.

Parce que tu ne vois pas la véritable valeur ds VC++ 6



1 2