realbasic-nug.fr
[Top] [All Lists]

Re: Arrondis variables

To: REALbasic NUG French <realbasic-nug dot fr at lists dot realsoftware dot com>
Subject: Re: Arrondis variables
From: Jacquot Jules <jacquot dot jules at tiscali dot fr>
Date: Mon, 24 Sep 2007 16:00:34 +0200
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot fr at lists dot realsoftware dot com
References: <CD48CDF8-B31E-4063-A254-1882D9CBBB00 at marine-label dot com>
Bonjour Marc

Le 18 09 2007 à 23:03, frael a écrit :


Hello
Voila 2 méthodes pour arrondir un nombre à 2 décimales, ci-dessous wdou2 et wdou3

  dim wdou1, wdou2, wdou3, wdou20, wdou30 As Double
  dim wst As String

  wdou1 = 45.73 * 0.5


  wdou2 = Round(wdou1 * 100)
  wdou2 = wdou2 / 100

  wst = Format(wdou1, "-0.00")
  wdou3 =CDbl(wst)

  wdou20 = wdou2 * 10000
  wdou30 = wdou3 * 10000

•  point d'arrêt: on voit que

wdou1  = 22,8649999999999984
wdou2  = 22,870000000000001
wst = 22,86
wdou3  = 22,8599999999999994

La bonne réponse est 22,87 (22,865 avec 3 décimales)

multiplié par 10000 l'erreur est plus flagrante :
wdou20 = 228700,
wdou30 = 228600,

--> pourquoi le Format rend un truc faux ?
--> et surtout, comment être sûr que le Round rend toujours un truc juste ?

j'utilise toujours Round pour calculer et jusqu'à présent c'est juste.

Tu multiplies par 0,5. C'est le résultat le plus difficile pour les arrondis comme le taux de TVA de 5.5 %

Mais avec round(wdou1*100)/100 je m'en suis toujours bien sorti

--> ou alors, quelle méthode fiable d'arrondi utiliser ?

Tests faits en 2007R4, avec les memes resultats sur macs PPC et Intel, en X.10

Marc

jules

----------------------------------------

C'est par le bien-faire que se crée le bien-être

proverbe chinois





<Prev in Thread] Current Thread [Next in Thread>