On me demande de réaliser une fonction d'arrondi dites au 4/5eme qui dit :
si le chiffre après l'arrondi est inférieur ou égal à quatre alors on garde la valeur sinon on incrémente de un.
Ce qui donne pour un arrondi à 2 décimales :
1.234 ==> 1.23
1.235 ==> 1.24
1.236 ==> 1.24
...
Pour moi c'est la fonction arrondi par défaut ... donc, je me dit pourquoi pas utiliser Decimal.Round(1.235m,2) et vérifier le résultat.
Surprise, le résultat n'est pas celui attendu ! Cela me retourne : 1.23, car .NET, la fonction arrondie utilisée est la méthode du chiffre paire le plus près et non pas la plus proche ! Voici un petit article sur les arrondis qui m'a aidé a comprendre : arrondi sur wikipédia
Donc pour utiliser l'arrondi au plus près, il faut utiliser la fonction suivante :
Decimal.Round(1.235m, 2,MidpointRounding.AwayFromZero)
Inscription à :
Publier les commentaires (Atom)
Aucun commentaire:
Enregistrer un commentaire