Arrondi des expressions numériques avec VB6

pmesson Messages postés 4 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 21 mars 2005 - 21 mars 2005 à 18:12
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006 - 5 juil. 2005 à 15:56
La fonction Round de VB6 arrondit les expresions numériques à la décimale supérieure losrque la décimale qui suit est supérieure à 5, et arrondit à la décimale inférieure losrque la décimale qui suit est inférieure ou égale à 5.
Quelqu'un pourrait-il me dire s'il existe une fonction qui permette d'arrondir à la décimale supérieure lorsque la décimale qui suit est égale à 5 ?
Exemple : 28,585 serait arrondi à deux décimales à 28,59 et non pas à 28,58.

Par avance, merci
PME

4 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
21 mars 2005 à 18:56
Salut,

Essaie ça :

Resultat_en_double = cdbl(Format$(TonNombre, "0.00"))
ou
Resultat_en_single = csng(Format$(TonNombre, "0.00"))

Loup Gris
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
21 mars 2005 à 19:16
Round((x + 0.005), 2)

Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
21 mars 2005 à 19:32
désolé ça marche pas...!
dommage de passer par une chaîne, mais la solution de CanisLupus a l'air de marcher.

Daniel
0
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006
5 juil. 2005 à 15:56
voici un copier-coller d'une fonction que j'ai crée pour l'arrondi :

Public Function Arrondi(xNb As Double, xNbVirgule As Integer) As Double
Dim xcoeff As Long
Dim xTab
xcoeff = 10 ^ (xNbVirgule)
If xNbVirgule > 0 Then
xTab = Split(xNb * xcoeff, ".")
Else
xTab = Split(xNb, ".")
End If
If ((CDbl(xNb * xcoeff) - CDbl(xTab(0))) >= 0.5) Then
xNb = (CDbl(xTab(0)) + 1) / xcoeff
Else
xNb = (CDbl(xTab(0))) / xcoeff
End If
Arrondi = xNb
End Function

Le code n'est peut être pas super mais elle fonctionne
0
Rejoignez-nous