Ce code donne plusieurs fonctions semblables à Round de VB6.
Plus précisément 4 fonctions sont disponibles:
-Une fonction équivalente à Round
-Une fonction donnant une valeur approchée par défaut
-Une fonction donnant une valeur approchée par exès
-Une fonction d'encadrement
Source / Exemple :
'----------------------REMARQUES PRELIMINAIRES---------------------
'DANS TOUTES CES FONCTIONS
'- n représente le nombre que l'on veut approcher
'- e représente le nombre de chiffres après la virgule, la précision
'------Définition de la partie entière ( Int ou Fix )------
'Quel que soit le réel x, il existe un unique p tel que
'p<=x<p+1 cet entier est appelé partie entière
'L'existence et l'unicité ne sont pas prouvées ici mais si un doute
'persiste sur ces deux propriétés contactez moi sur le réseau codes source.
Public Function Roundinf(n As Double, e As Long) As Double
Roundinf = Fix((10 ^ e) * n) / (10 ^ e)
'La fonction Roundinf renvoie une valeure toujours inférieure à n,
'Ceci se démontre grâce à la définition de la partie entière donnée ci dessus
'en effet, il est évident qu quel que soit x, fix(x*10^n)<x*10^n
'On obtient ce qu'on veut prouver en divisant par 10^n
End Function
Public Function Roundsup(n As Double, e As Long) As Double
Roundsup = Roundinf(n, e) + (1 / (10 ^ e))
'On montre de la même manière que la fonction Roundsup renvoi un
'nombre toujours supérieur à celui qui est donné
End Function
Public Function Roundapp(n As Double, e As Long) As Double
'Cette fonction est équivalente à la fonction Round sous VB6
If n = Fix(n) Then
Roundapp = n
Else
n = n + "0"
'Evite les erreur de comparaison de 5 avec ""
ent = Fix(n)
Rang = Len(ent) + 2 + e
'Rang nous donne le rang de la valeure située en e+1 position apres la virgule
valeure = Mid$(n, Rang, 1)
If valeure >= 5 Then
Roundapp = Roundsup(n, e)
Else: Roundapp = Roundinf(n, e)
End If
'Conventions d'arrondissement identique à Round()
End If
End Function
Public Function Encadrement(n As Double, e As Long) As Double
Encadrement = Roundinf(n, e) + " < " + n + " < " + Roundsup(n, e)
End Function
Conclusion :
Bravo à Gobillot pour sa patience. et allez voir
http://www.vbfrance.com/forum.v2.aspx?ID=671735&post=ok
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.