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 :
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 :
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 :
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
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
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
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,
Ah la la, on ne pense jamais assez à la FAQ :-) , qui sur le coup est plus complet que la doc MSDN qui ne mentionne, pas directement en tout cas, le système d'arrondi au prochain entier pair :
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,
Ah la la, on ne pense jamais assez à la FAQ :-) , qui sur le coup est
plus complet que la doc MSDN qui ne mentionne, pas directement en tout
cas, le système d'arrondi au prochain entier pair :
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,
Ah la la, on ne pense jamais assez à la FAQ :-) , qui sur le coup est plus complet que la doc MSDN qui ne mentionne, pas directement en tout cas, le système d'arrondi au prochain entier pair :
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)
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
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)
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
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)
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
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 :
"Jacques93" <jacques@Nospam> a écrit dans le message de
news:OsVoJYPnJHA.5832@TK2MSFTNGP06.phx.gbl...
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 :
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 :
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...
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)
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
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...
"David" <bs173990@skynet.be> a écrit dans le message de
news:%23qn9NHRnJHA.5980@TK2MSFTNGP06.phx.gbl...
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)
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
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...
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)
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
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).
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
Bonjour, merci...
Nons, c'est :
TTC - TVA (19,6%) = HT HT - COM (15%) = NET
De facto la TVA est aussi payée évidemment sur la COM, donc dans cet ordre.
Alors moi j'ai fait : TTC / 119,6 * 100 = HT HT / 100 * 85 (com) = NET <> entre TTC et NET = (TTC * 0,7108)
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).
Bonjour, merci...
Nons, c'est :
TTC - TVA (19,6%) = HT
HT - COM (15%) = NET
De facto la TVA est aussi payée évidemment sur la COM, donc dans cet ordre.
Alors moi j'ai fait :
TTC / 119,6 * 100 = HT
HT / 100 * 85 (com) = NET
<> entre TTC et NET = (TTC * 0,7108)
"PH" <PH@laposte.net> a écrit dans le message de
news:eiVVc7VnJHA.504@TK2MSFTNGP06.phx.gbl...
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).
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).
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
On 0304 "LE TROLL" <le tr...@enfer.fr> 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>
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>