Calcul exacte

kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008 - 23 nov. 2007 à 19:15
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 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

merci d'avance

5 réponses

Utilisateur anonyme
23 nov. 2007 à 19:29
Salut,

Mais 0.9999999999... c'est égale à 1.0.999999999... / 3 0.33333333333... 1/3 et 1/3 * 3 = 1
Donc 0.9999999999... = 1







__________
Kenji

(


Nouveau forum VBA/Office
0
Utilisateur anonyme
23 nov. 2007 à 19:35
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.

__________
Kenji
(
Nouveau forum VBA/Office
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
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 !!
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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
0

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

Posez votre question
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
27 nov. 2007 à 21:36
dim a as double
0
Rejoignez-nous