Calcul exacte

Signaler
Messages postés
296
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
21 novembre 2008
-
Messages postés
296
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
21 novembre 2008
-
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

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
32
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
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
32
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
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
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 !!
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
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
Messages postés
296
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
21 novembre 2008

dim a as double