Ou simplement passer par Int, c'était une bonne idée, je n'y avais pas pensé :
Public Function TronqueNB(ByVal dblNB As Double, ByVal intNbDec As Integer) TronqueNB = Int(dblNB * 10 ^ intNbDec) / 10 ^ intNbDec End Function
MsgBox TronqueNB(15.567845,2)
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Christophe QUEVAL a écrit :
C'est pour cela qu'il faut passer par *Int* avant, ou l'intégrer au *Format* ;-)
"ng" a écrit dans le message de news:
Salut,
La fonction Format$() employée ainsi arrondie le nombre :
Debug.Print Format$(1.459, "#.##") 'vaut 1,46
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Christophe QUEVAL a écrit :
Avec l'instruction Format qui convertit la variable en *string*
Dim MaChaine as String MaChaine = Format(MonNombre, "#.##")
Remplacez #.## par #.00 si vous souhaitez afficher en permanence les décimales.
Christophe
"lou" a écrit dans le message de news:408629ae$0$11085$
bonjour et merci pour votre aide
vous avez dit d'essaier ceci
Dim MonNombre as Single MonNombre = 1543,6597 MonNombre = Int(MonNombre * 100) / 100
Résultat >>> 1543,65
mais moi j'obtiens 1543,6500 comment enlever les 2 derniers zeros merci
"Christophe QUEVAL" a écrit dans le message de news:
Bonsoir,
Avec Int vous pouvez faire :
Dim MonNombre as Single MonNombre = 1543,6597 MonNombre = Int(MonNombre * 100) / 100
Résultat >>> 1543,65
Christophe
"lou" a écrit dans le message de news:40855f15$0$10991$
bonjour petit probleme de nombre ex 1 138,4569 ou ex 2 14,568
en fait je veux laisser 2 chiffres apres la virgule ex 1 138,45 ou ex 2 14,56
je ne veux pas formater peut etre avec len? trouver la virgule et laisser 2 chiffres apres comment faire merci de votre aide
Ou simplement passer par Int, c'était une bonne idée, je n'y avais pas pensé
:
Public Function TronqueNB(ByVal dblNB As Double, ByVal intNbDec As Integer)
TronqueNB = Int(dblNB * 10 ^ intNbDec) / 10 ^ intNbDec
End Function
MsgBox TronqueNB(15.567845,2)
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/
Christophe QUEVAL <queval.chr.no.spam@wanadoo.fr.no.spam> a écrit :
C'est pour cela qu'il faut passer par *Int* avant, ou l'intégrer au
*Format* ;-)
"ng" <ng@babeuk.net> a écrit dans le message de
news:umkg2t3JEHA.1000@TK2MSFTNGP11.phx.gbl...
Salut,
La fonction Format$() employée ainsi arrondie le nombre :
Debug.Print Format$(1.459, "#.##") 'vaut 1,46
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/
Christophe QUEVAL <queval.chr.no.spam@wanadoo.fr.no.spam> a écrit :
Avec l'instruction Format qui convertit la variable en *string*
Dim MaChaine as String
MaChaine = Format(MonNombre, "#.##")
Remplacez #.## par #.00 si vous souhaitez afficher en permanence les
décimales.
Christophe
"lou" <colluluigi@skynet.be> a écrit dans le message de
news:408629ae$0$11085$a0ced6e1@news.skynet.be...
bonjour et merci pour votre aide
vous avez dit d'essaier ceci
Dim MonNombre as Single
MonNombre = 1543,6597
MonNombre = Int(MonNombre * 100) / 100
Résultat >>> 1543,65
mais moi j'obtiens 1543,6500
comment enlever les 2 derniers zeros
merci
"Christophe QUEVAL" <queval.chr.no.spam@wanadoo.fr.no.spam> a écrit
dans le message de news: OSvs9bwJEHA.2624@TK2MSFTNGP09.phx.gbl...
Bonsoir,
Avec Int vous pouvez faire :
Dim MonNombre as Single
MonNombre = 1543,6597
MonNombre = Int(MonNombre * 100) / 100
Résultat >>> 1543,65
Christophe
"lou" <colluluigi@skynet.be> a écrit dans le message de
news:40855f15$0$10991$a0ced6e1@news.skynet.be...
bonjour
petit probleme de nombre
ex 1 138,4569
ou ex 2 14,568
en fait je veux laisser 2 chiffres apres la virgule
ex 1 138,45
ou ex 2 14,56
je ne veux pas formater
peut etre avec len?
trouver la virgule et laisser 2 chiffres apres
comment faire
merci de votre aide
Ou simplement passer par Int, c'était une bonne idée, je n'y avais pas pensé :
Public Function TronqueNB(ByVal dblNB As Double, ByVal intNbDec As Integer) TronqueNB = Int(dblNB * 10 ^ intNbDec) / 10 ^ intNbDec End Function
MsgBox TronqueNB(15.567845,2)
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Christophe QUEVAL a écrit :
C'est pour cela qu'il faut passer par *Int* avant, ou l'intégrer au *Format* ;-)
"ng" a écrit dans le message de news:
Salut,
La fonction Format$() employée ainsi arrondie le nombre :
Debug.Print Format$(1.459, "#.##") 'vaut 1,46
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Christophe QUEVAL a écrit :
Avec l'instruction Format qui convertit la variable en *string*
Dim MaChaine as String MaChaine = Format(MonNombre, "#.##")
Remplacez #.## par #.00 si vous souhaitez afficher en permanence les décimales.
Christophe
"lou" a écrit dans le message de news:408629ae$0$11085$
bonjour et merci pour votre aide
vous avez dit d'essaier ceci
Dim MonNombre as Single MonNombre = 1543,6597 MonNombre = Int(MonNombre * 100) / 100
Résultat >>> 1543,65
mais moi j'obtiens 1543,6500 comment enlever les 2 derniers zeros merci
"Christophe QUEVAL" a écrit dans le message de news:
Bonsoir,
Avec Int vous pouvez faire :
Dim MonNombre as Single MonNombre = 1543,6597 MonNombre = Int(MonNombre * 100) / 100
Résultat >>> 1543,65
Christophe
"lou" a écrit dans le message de news:40855f15$0$10991$
bonjour petit probleme de nombre ex 1 138,4569 ou ex 2 14,568
en fait je veux laisser 2 chiffres apres la virgule ex 1 138,45 ou ex 2 14,56
je ne veux pas formater peut etre avec len? trouver la virgule et laisser 2 chiffres apres comment faire merci de votre aide
ng
Salut,
D'après l'idée de Christophe, on peut en effet avoir une fonction plus élégante et surtout plus rapide :
Public Function TronqueNB(ByVal dblNB As Double, ByVal intNbDec As Integer) TronqueNB = Int(dblNB * 10 ^ intNbDec) / 10 ^ intNbDec End Function
Même utilisation que la précédent :
MsgBox TronqueNB(138.4569, 2)
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
ng a écrit :
Salut,
Essaye ça, mais c'est pas des plus rapide...
Public Function TronqueNB(ByVal dblNB As Double, ByVal intNbDec As Integer) As Double Dim strNB As String strNB = CStr(0.5) strNB = Replace(CStr(dblNB), Mid$(strNB, 2, 1), ".", , , vbTextCompare) If strNB Like "*.*" And intNbDec > 0 Then TronqueNB = Val(Left$(strNB, InStr(1, strNB, ".", vbTextCompare) + intNbDec)) Else TronqueNB = dblNB End If End Function
MsgBox TronqueNB(138,4569, 2)
bonjour petit probleme de nombre ex 1 138,4569 ou ex 2 14,568
en fait je veux laisser 2 chiffres apres la virgule ex 1 138,45 ou ex 2 14,56
je ne veux pas formater peut etre avec len? trouver la virgule et laisser 2 chiffres apres comment faire merci de votre aide
Salut,
D'après l'idée de Christophe, on peut en effet avoir une fonction plus
élégante et surtout plus rapide :
Public Function TronqueNB(ByVal dblNB As Double, ByVal intNbDec As Integer)
TronqueNB = Int(dblNB * 10 ^ intNbDec) / 10 ^ intNbDec
End Function
Même utilisation que la précédent :
MsgBox TronqueNB(138.4569, 2)
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/
ng <ng@babeuk.net> a écrit :
Salut,
Essaye ça, mais c'est pas des plus rapide...
Public Function TronqueNB(ByVal dblNB As Double, ByVal intNbDec As
Integer) As Double
Dim strNB As String
strNB = CStr(0.5)
strNB = Replace(CStr(dblNB), Mid$(strNB, 2, 1), ".", , ,
vbTextCompare)
If strNB Like "*.*" And intNbDec > 0 Then
TronqueNB = Val(Left$(strNB, InStr(1, strNB, ".", vbTextCompare) +
intNbDec))
Else
TronqueNB = dblNB
End If
End Function
MsgBox TronqueNB(138,4569, 2)
bonjour
petit probleme de nombre
ex 1 138,4569
ou ex 2 14,568
en fait je veux laisser 2 chiffres apres la virgule
ex 1 138,45
ou ex 2 14,56
je ne veux pas formater
peut etre avec len?
trouver la virgule et laisser 2 chiffres apres
comment faire
merci de votre aide
D'après l'idée de Christophe, on peut en effet avoir une fonction plus élégante et surtout plus rapide :
Public Function TronqueNB(ByVal dblNB As Double, ByVal intNbDec As Integer) TronqueNB = Int(dblNB * 10 ^ intNbDec) / 10 ^ intNbDec End Function
Même utilisation que la précédent :
MsgBox TronqueNB(138.4569, 2)
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
ng a écrit :
Salut,
Essaye ça, mais c'est pas des plus rapide...
Public Function TronqueNB(ByVal dblNB As Double, ByVal intNbDec As Integer) As Double Dim strNB As String strNB = CStr(0.5) strNB = Replace(CStr(dblNB), Mid$(strNB, 2, 1), ".", , , vbTextCompare) If strNB Like "*.*" And intNbDec > 0 Then TronqueNB = Val(Left$(strNB, InStr(1, strNB, ".", vbTextCompare) + intNbDec)) Else TronqueNB = dblNB End If End Function
MsgBox TronqueNB(138,4569, 2)
bonjour petit probleme de nombre ex 1 138,4569 ou ex 2 14,568
en fait je veux laisser 2 chiffres apres la virgule ex 1 138,45 ou ex 2 14,56
je ne veux pas formater peut etre avec len? trouver la virgule et laisser 2 chiffres apres comment faire merci de votre aide