kelm_by
Messages postés296Date d'inscriptionmardi 9 janvier 2007StatutMembreDernière intervention21 novembre 2008
-
23 nov. 2007 à 19:15
kelm_by
Messages postés296Date d'inscriptionmardi 9 janvier 2007StatutMembreDernière intervention21 novembre 2008
-
27 nov. 2007 à 21:36
salut tous le monde,
quand j'essay de calculer 0.3333333333333*3 ca me donne 1 tandit que c'est egal a 0.9999999999 comment peut onavoire les chifre exacte derrier la virgule
Plus sérieusement, de quel type sont tes variables ?
Cela dépend du type car le ,ombre de décimal est limité, donc en cas de dépassement, c'est l'arrondi.
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 23 nov. 2007 à 19:44
Charles < Oui ! Mais lui il ne calcule pas 0.33333333333...*3 mais 0.33333333333*3 !!!! Trois points de suspension qui font toute la différence !
kelm_by < Perso, j'obtient bien 0.9999999999 !!! Peux-tu nous donner quelques lignes de code qu'on voit ce qui ce passe (je pense que tu es victime d'un arrondissement lié à un cast implicit de ta valeur !!
En effet, si tu fais :
Dim L As Long, S As Single, D As Double
L = 0.3333333333333 * 3 ' L vaut 1 ! Normal c'est un entier
S = 0.3333333333333 * 3 ' S vaut 1 ! Ben ! C'est réel lui ! oui, mais en simple précision
D = 0.3333333333333 * 3 ' D vaut 0.9999999999 ! La c'est OK !!
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 23 nov. 2007 à 21:31
Bonsoir,
réponse dans le typage...
exemple autoexplicite :
Private Sub Command3_Click()
Dim titi As Single, etvoila As Double
titi = 0.3333333333333
MsgBox titi * 3
etvoila = 0.3333333333333
MsgBox etvoila * 3
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?