5,32 - 5,26 = 6,00000000000005E-02

cs_Morinaux Messages postés 34 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 16 mai 2009 - 23 juin 2004 à 13:25
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008 - 23 juin 2004 à 19:02
Bonjour,
Je voudrais savoir pourquoi quand je fais 5,32 - 5,26 j'obtient 6,00000000000005E-02 et pas 0,06 ?
Si vous savez aussi comment corriger ce problème.

Merci,

10 réponses

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 10
23 juin 2004 à 13:28
quand tu le fait comment dans ton programme?
a la limite laisse nous voir le bout de code...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
23 juin 2004 à 13:42
Salut,
mes variables, je les déclares en currency et ca marche pour ce genre de résultat.
dim S1 as Currency

je n'exclu pas que pour d'autres types de résultat, il y ait un "plantage".

bonne prog
liquide
0
cs_dav78 Messages postés 25 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 25 juin 2004
23 juin 2004 à 13:43
6,00000000000005E-02 = 0,0600000000005

Si tu obtient pas 0,06 exactement c'est parce que 5,32 vaut pas exactement 5,32 et 5,26 vaut pas exactement 5,26... à cause de la façon dont tout ça est stocké en mémoire mais on s'en fout.

Pour avoir 0,06 essaye avec la fonction FormatNumber() (va voir dans la MSDN)
0
cs_Morinaux Messages postés 34 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 16 mai 2009 1
23 juin 2004 à 14:28
J'ai essayé avec Currency mais cà déconne toujours.
Quand à l'idée de dav78, elle n'est pas assez précise.

Voici une tout petite partie de mon prog (il comprend une form, trois textbox, un bouton):

Private Sub Command1_Click()
text3.text = text1.text - text2.text
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_dav78 Messages postés 25 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 25 juin 2004
23 juin 2004 à 14:34
Alors essaye ça:

Private Sub Command1_Click()
text3.text = FormatNumber(text1.text - text2.text , 2)
End Sub 


Le second parametre de FormatNumber permet de choisir le nombre de décimale.
0
cs_dav78 Messages postés 25 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 25 juin 2004
23 juin 2004 à 14:36
Alors essaye ça:

Private Sub Command1_Click()
text3.text = FormatNumber(text1.text - text2.text , 2)
End Sub 


Le second parametre de FormatNumber permet de choisir le nombre de décimale.
0
cs_dav78 Messages postés 25 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 25 juin 2004
23 juin 2004 à 14:38
Oups désolé j'ai dérapé deux fois sur le bouton! ;)
0
cs_Morinaux Messages postés 34 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 16 mai 2009 1
23 juin 2004 à 14:40
Rectification :
J'ai conpris ce que dav78 voulait me dire et cà marche, MERCI

Merci aussi aux autres personnes, même si cà n'a pas marché.

@+
0
pinje Messages postés 129 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 24 août 2006
23 juin 2004 à 14:41
Ou tu peux aussi jouer sur les variables en elle meme en customisant leur format:

Private Sub Command1_Click()
Dim Var1 As Variant
Dim Var2 As Variant
Dim Var3 As Variant

Var1 = text1.Text
Var1 = Format(Var1, "###0.00")

Var2 = text2.Text
Var2 = Format(Var2, "###0.00")

Var3 = Var1 - Var2
Var3 = Format(Var3, "###0.00")

text3.Text = Var3

End Sub
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
23 juin 2004 à 19:02
salut,

content que tu ais trouvé la solution sinon j'avais codé comme ceci :

Dim S1 As Currency
Dim S2 As Currency

S1 = Text1.Text
S2 = Text2.Text

Label1.Caption = S1 - S2


il me donne le bon résultat
bonne prog
liquide
0