Astuce VBA - remplacement fonction Round()
Résolu
Patrice33740
Messages postés
8561
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais créer une astuce VBA concernant les erreurs d'arrondi avec Round()
En effet :
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.
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
Cordialement
Patrice
J'aimerais créer une astuce VBA concernant les erreurs d'arrondi avec Round()
En effet :
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.
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
Cordialement
Patrice
1 réponse
Bonjour,
Astuce... astucieuse.
Cette fonction n'étant pas disponnible en VBA.
Note : valable également pour tout les VB, 6, net.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Astuce... astucieuse.
Cette fonction n'étant pas disponnible en VBA.
Note : valable également pour tout les VB, 6, net.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Pour ne pas qu'elle tombe aux oubliettes (comme dit Lami20J )
Cordialement.
Cordialement
Patrice