Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de format ???

12 réponses
Avatar
LE TROLL
Bonjour,

J'ai un truc bizarre avec le format...

double = 8.5296
format(double,"00.00") = 8,53

???

Je ne lui ai pas dit "Round", je lui ai dit "Format" ???

Savez-vous comment corriger ça ?

--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.

2 réponses

1 2
Avatar
LE TROLL
Bonjour François,

Merci :o)

Je ne connais pas Currency, sauf de nom, faut voir...

Le problème est que le multiplicateur est bon à deux décimal, faux à
trois, or quand je formate l'animal arrondi en même temps, rendant ma
seconde décimal parfois fausse ! Certes je pourrais très bien bidouiller ça
en texte, mais j'essayais de la faire en arithmétique...

--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"François Picalausa" a écrit dans le message de
news:
On 0304 "LE TROLL" <le wrote:
format(double,"00.00") = 8,53


On 0305,
De facto la TVA est aussi paye videmment sur la COM, donc dans cet ordre.



Hello,

Je n'ai pas suivit toute la discussion donc il se peut que mon
commentaire ne soit pas pertinent, mais - excepté le "problème"
d'arrondi - le type double est-il vraiment le type voulu ? Il existe
Currency est probablement plus approprié (particulièrement au niveau
précision) :

<citation src="documentation VBA">
The Currency data type is useful for calculations involving money
[...] in which accuracy is particularly important.
</citation>

François
Avatar
David
Bonjour Le Troll,

Puisque vous constatez vous même
de manière intangible que Format arrondi,
alors vous reste une seule solution :
arrondissez avec une des solutions que l'on vous proposé
ici même et terminez l'affichage avec Format qui n'aura plus
rien à arrondir puisque votre programme l'aura fait
à sa place.
C'est ce que je fais dans mon programme de facturation
et je peux vous garantir qu'il n'y a jamais aucune erreur.
Je le sais car les chiffres totaux de mes factures sont réintroduit
dans un programme de comptabilité extérieure et qu'ils
sont à 100% validé - ce qui n'était pas le cas voici
quelques années lorsque je n'utilisais pas un arrondi
"fait maison".

a+ Jean-Pol Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.


"LE TROLL" <le a écrit dans le message de news:

Bonjour David,

Ce n'est pas pour ma part un problème d'arrondi, si Format
n'arrondissait pas.

En fait j'ai un problème de précision car je tente d'avoir avec une
multiplication unique 0,7108 le même résultat que X - 19,6% (tva) et du
reste -15% de commission, alors selon le montant de base, parfois c'est
bon, d'autres fois ça varie de + ou - 0.01
Je ne sais donc pas si mathématiquement je peux avec une seule opération
en faire deux, surtout avec ce vilain "Format" qui arrondi...

--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"David" a écrit dans le message de
news:%
Bonjour à tous,

Voila ce que j'utilise pour faire l'arrondi dans mon
programme de facturation et qui n'a jamais été pris en défaut
depuis plusieurs années.

Public Function Trunc(ByVal x As Double, ByVal nbDec As Long) As Double
'-- Fonction de troncature à nbDec après la virgule

Dim strTemp As String
Dim k As Long

strTemp = Trim$(Str(x))
k = InStr(1, strTemp, ".")
If (k = 0) Then
'-- Il s'agit d'un nombre entier, on n'y touche pas
Trunc = x
Else
'-- On récupère nbDec chiffres derrière le point
Trunc = Val(Left$(strTemp, k + nbDec))
End If

End Function

Public Function MyRound(ByVal x As Double, ByVal nbDec As Long) As Double
'-- Fonction d'arrondi à nbDec après la virgule (x>0)

Dim s As Double

s = 1 / (2 * (Exp(nbDec * Log(10)))) * Sgn(x)
's = 0.5 / 100
MyRound = Trunc(x + s, nbDec)

End Function

a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.


"Jean-marc" a écrit dans le message de news:
49aee6a3$0$2855$
Jacques93 wrote:

Hello,

Format effectue un arrondi, qui est d'ailleurs parfois préféré à celui
de Round, essaie :



Et pour tout savoir sur les arrondis en VB, je conseille la lecture de
ce
petit article qui explique tout ça :
http://faq.vb.free.fr/index.php?question8

Pour les plus curieux, cet excellent article de la KB Microsoft
qui propose une dizaine de fonction d'arrondis, y compris
bien sur l'équivalent du "truncate" ci-dessus mentionné:
http://support.microsoft.com/?scid=kb;en-us;196652&x"&y


Bonne lecture,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;













1 2