OVH Cloud OVH Cloud

format nombre

12 réponses
Avatar
lou
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

2 réponses

1 2
Avatar
ng
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












Avatar
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




1 2