Exigences : Souvent utilisées pour l’arrondi et peu sensibles aux exigences de précision.
Pour obtenir un arrondi de deux décimales, le développeur a écrit le code suivant,
Le code est très simple, développeursLe résultat réel était de 12,12, ce qui contredisait le résultat d’arrondi attendu de 12,13。
La raison de ce résultat est que Math.Round n’utilise pas par défaut la règle d’arrondi, mais fait des tours pour rendre l’équilibre.
Arrondir à cinq pour former une paire
L’arrondi dit de six à cinq pour former une paire signifie qu’après avoir déterminé les chiffres significatifs, si le chiffre significatif suivant est inférieur ou égal à 4, il est arrondi à la baisse ; s’il est supérieur ou égal à 6, arrondi à la hausse de un. Lorsque le chiffre significatif suivant est 5,
- Si le nombre avant 5 est impair, arrondir cinq vers le haut et avancer de un
- Si 5 est avant un nombre pair, on saute 5 (0 est pair).
Statistiquement, arrondir à pair est plus précis que arrondir cinq, car lorsqu’il y a beaucoup de calculs, arrondir tous les cinq à un peut donner un nombre plus élevé.
Par exemple:
1,15+1,25+1,35+1,45 = 5,2
Si les chiffres significatifs sont d’une décimale, le résultat est obtenu en utilisant le principe d’arrondi
1.2 + 1.3 + 1.4 + 1.5 = 5.4
Le résultat obtenu en arrondi à cinq pairs est
1.2 + 1.2 + 1.4 + 1.4 = 5.2
Cela montre que la règle d’arrondi donne des résultats plus précis.
Math.Round
Alors, comment utilisez-vous Math.Round pour obtenir l’arrondi attendu ?
En fait, Math.Round en C# fournit de nombreuses méthodes de surcharge, dont deux méthodes :
Les deux méthodes fournissent un troisième paramètre appelé mode, qui est une variable d’énumération du MidpointRounding avec deux valeurs sélectionnables
- AwayFromZero - arrondissement vers le haut
- ToEven - arrondir à arrondir par
Donc, si nous voulons un résultat idéal arrondi, nous pouvons utiliser le code suivant :
Énumération par arrondissement du milieu du temps, comme montré ci-dessous :
Référence:La connexion hyperlientérée est visible. |