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" ???
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" ???
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" ???
Format effectue un arrondi, qui est d'ailleurs parfois préféré à celui
de Round, essaie :
Format effectue un arrondi, qui est d'ailleurs parfois préféré à celui
de Round, essaie :
Format effectue un arrondi, qui est d'ailleurs parfois préféré à celui
de Round, essaie :
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,
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,
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,
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_' ;
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_' ; _no_spam_jean_marc_n2@yahoo.fr
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_' ;
Bonjour LE TROLL,
LE TROLL a écrit :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" ???
Format effectue un arrondi, qui est d'ailleurs parfois préféré à celui de
Round, essaie :
MsgBox (Round(2.5, 0)) ' donne 2
MsgBox (Format(2.5, "0")) ' donne 3
étonnant non !
Pour obtenir un nombre de décimales sans arrondi, il faut tronquer. Cette
fonction n'existe pas de base en VB, mais on peut l'implémenter.
Par exemple :
Private Function Truncate(d As Double, NumDec As Integer) As Double
' NumDec = Nombre de décimales désirées
Truncate = Int(d * 10 ^ NumDec) / (10 ^ NumDec)
End Function
...
MsgBox Format$(Truncate(d, 2), "00.00")
A la place de Int, on peut utiliser Fix qui a un comportement différent
avec les nombres négatifs :
<http://msdn.microsoft.com/en-us/library/aa445034(VS.60).aspx>
--
Cordialement,
Jacques.
Bonjour LE TROLL,
LE TROLL a écrit :
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" ???
Format effectue un arrondi, qui est d'ailleurs parfois préféré à celui de
Round, essaie :
MsgBox (Round(2.5, 0)) ' donne 2
MsgBox (Format(2.5, "0")) ' donne 3
étonnant non !
Pour obtenir un nombre de décimales sans arrondi, il faut tronquer. Cette
fonction n'existe pas de base en VB, mais on peut l'implémenter.
Par exemple :
Private Function Truncate(d As Double, NumDec As Integer) As Double
' NumDec = Nombre de décimales désirées
Truncate = Int(d * 10 ^ NumDec) / (10 ^ NumDec)
End Function
...
MsgBox Format$(Truncate(d, 2), "00.00")
A la place de Int, on peut utiliser Fix qui a un comportement différent
avec les nombres négatifs :
<http://msdn.microsoft.com/en-us/library/aa445034(VS.60).aspx>
--
Cordialement,
Jacques.
Bonjour LE TROLL,
LE TROLL a écrit :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" ???
Format effectue un arrondi, qui est d'ailleurs parfois préféré à celui de
Round, essaie :
MsgBox (Round(2.5, 0)) ' donne 2
MsgBox (Format(2.5, "0")) ' donne 3
étonnant non !
Pour obtenir un nombre de décimales sans arrondi, il faut tronquer. Cette
fonction n'existe pas de base en VB, mais on peut l'implémenter.
Par exemple :
Private Function Truncate(d As Double, NumDec As Integer) As Double
' NumDec = Nombre de décimales désirées
Truncate = Int(d * 10 ^ NumDec) / (10 ^ NumDec)
End Function
...
MsgBox Format$(Truncate(d, 2), "00.00")
A la place de Int, on peut utiliser Fix qui a un comportement différent
avec les nombres négatifs :
<http://msdn.microsoft.com/en-us/library/aa445034(VS.60).aspx>
--
Cordialement,
Jacques.
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_' ;
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" <jm@nowhere.invalid> a écrit dans le message de news:
49aee6a3$0$2855$ba620e4c@news.skynet.be...
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_' ; _no_spam_jean_marc_n2@yahoo.fr
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_' ;
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...
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...
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...
LE TROLL a écrit :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...
tu dois faire -15% sur le hors taxe puis calculer la TVA et donner enfin
le résulta TTC
Soit PHT le prix hors TVA
PHT*0.15, la remise que tu arrondis comme tu le souhaites : par défaut,
par excès, standard
Tu retires la commission du PHT cela te donne P
Tu calcules la TVA
TVA = P*0.196 que tu arrondis
PTTC = P + TVA
Par contre des arrondis successifs ne te donneront pas le même résultat
suivant l'ordre des opérations.
(je crois que si tu calcules la commission sur le prix TTC tu dois payer
la TVA sur la ristourne octroyée).
LE TROLL a écrit :
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...
tu dois faire -15% sur le hors taxe puis calculer la TVA et donner enfin
le résulta TTC
Soit PHT le prix hors TVA
PHT*0.15, la remise que tu arrondis comme tu le souhaites : par défaut,
par excès, standard
Tu retires la commission du PHT cela te donne P
Tu calcules la TVA
TVA = P*0.196 que tu arrondis
PTTC = P + TVA
Par contre des arrondis successifs ne te donneront pas le même résultat
suivant l'ordre des opérations.
(je crois que si tu calcules la commission sur le prix TTC tu dois payer
la TVA sur la ristourne octroyée).
LE TROLL a écrit :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...
tu dois faire -15% sur le hors taxe puis calculer la TVA et donner enfin
le résulta TTC
Soit PHT le prix hors TVA
PHT*0.15, la remise que tu arrondis comme tu le souhaites : par défaut,
par excès, standard
Tu retires la commission du PHT cela te donne P
Tu calcules la TVA
TVA = P*0.196 que tu arrondis
PTTC = P + TVA
Par contre des arrondis successifs ne te donneront pas le même résultat
suivant l'ordre des opérations.
(je crois que si tu calcules la commission sur le prix TTC tu dois payer
la TVA sur la ristourne octroyée).
En passant, le lien de la FAQ sur la doc MSDN :
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vafctRound.a sp
semble mort. Désolé ...
En passant, le lien de la FAQ sur la doc MSDN :
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vafctRound.a sp
semble mort. Désolé ...
En passant, le lien de la FAQ sur la doc MSDN :
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vafctRound.a sp
semble mort. Désolé ...
format(double,"00.00") = 8,53
De facto la TVA est aussi paye videmment sur la COM, donc dans cet ordre.
format(double,"00.00") = 8,53
De facto la TVA est aussi paye videmment sur la COM, donc dans cet ordre.
format(double,"00.00") = 8,53
De facto la TVA est aussi paye videmment sur la COM, donc dans cet ordre.