Encadrements et approximations

Description

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

Codes Sources

A voir également

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.