VBA.VB6 - Fonction d'arrondi Supp/Inférieur à n décimales



La fonction Round() donne un mauvais arrondi pour les nombres de la forme (2a + 0,5) x 10^-n (arrondis à l'inférieur !!!).
Par contre, les nombres de la forme (2a - 0,5) x 10^-n sont normalement arrondis au supérieur.
Auteur : Patrice33740
Par exemple :

Round(0.15 , 1) = 0.2
Round(0.25 , 1) = 0.2
Round(0.35 , 1) = 0.4
Round(0.45 , 1) = 0.4

La fonction Arrondi proposée ci dessous ne présente pas cette anomalie :

Arrondi(0.15 , 1) = 0.2
Arrondi(0.25 , 1) = 0.3
Arrondi(0.35 , 1) = 0.4
Arrondi(0.45 , 1) = 0.5

Private Function Arrondi(ByVal Nombre, ByVal Decimales)     
      Arrondi = Int(Nombre * 10 ^ Decimales + 1 / 2) / 10 ^ Decimales     
End Function


Publié par lermite222 - Dernière mise à jour le 5 novembre 2010 à 09:42 par lermite222
Ce document intitulé « VBA.VB6 - Fonction d'arrondi Supp/Inférieur à n décimales » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook
VBA : VB - Transformer Heure > décimale et Décimale >heure
VB.Net - TextBox, limiter saisie aux chiffres