Type double problème de calcul [Résolu]

Messages postés
13
Date d'inscription
mardi 27 mars 2007
Dernière intervention
2 octobre 2009
- 6 juil. 2009 à 12:19 - Dernière réponse :
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
- 6 juil. 2009 à 14:26
Bonjour ,
je rencontre un problème assez contrariant au sujet des types double.
J'ai une variable double nommée total.
Je lui ajout une première valeur: 168.35284300.
Jusqu'ici pas de problème...
Je lui ajoute ensuite : 1112.04013295 .
Et là ma variable total prend la valeur : 1280.39297595 00002.
00002 apparait alors qu'il n'y a aucune raison...
C'est assez contraignant car si je soustrais mes deux valeurs je me retrouve avec un 1E14 en trop...
J'utilise Visual Studio 2008 mon OS est Windows Vista 64bits c'est peut être du au 64bits...
Merci d'avance pour vos réponses
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
6 juil. 2009 à 12:32
3
Merci
Hello,

C'est sans doute du à l'imprécision du type double, qui est un nombre à virgule flottante (cf. http://fr.wikipedia.org/wiki/Nombre_flottant, partie précaution d'emploi).
Si tu veux avoir une meilleure précision, utilise le type decimal, mais il est plus gournad en mémoire.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

Merci SharpMao 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de SharpMao
Messages postés
1163
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
21 octobre 2010
6 juil. 2009 à 12:25
0
Merci
Assure toi que TOUS tes nombres sont des doubles. Le soucis vient probablement que l'un de tes nombres (le deuxieme a priori, vu que cest la que le soucis ressort) est un float et non un double
Commenter la réponse de leprov
Messages postés
13
Date d'inscription
mardi 27 mars 2007
Dernière intervention
2 octobre 2009
6 juil. 2009 à 12:50
0
Merci
Niquel! OK pour le type decimal, merci beaucoup!
C'est quand même embêtant cette histoire de double... Heureusement que je ne développais pas une appli pour Airbus...
Commenter la réponse de cs_mouic
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
6 juil. 2009 à 14:26
0
Merci
"Heureusement que je ne développais pas une appli pour Airbus..."
Ce genre de problème est certainement déjà arrivé et arrivera encore certainement.
Cependant, c'est à ça que servent les tests (même si ça ne suffit pas toujours)

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Commenter la réponse de krimog

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.