web-dev-qa-db-fra.com

Syntaxe pour arrondir dans VB.NET

Quelle est la syntaxe pour arrondir une décimale en laissant deux chiffres après la virgule?

Exemple: 2.566666 -> 2.57

12
leonita

Si vous souhaitez arrondir régulièrement, vous pouvez simplement utiliser la méthode Math.Round. Si vous voulez spécifiquement arrondir à la hausse, vous utilisez la méthode Math.Ceiling:

Dim d As Decimal = 2.566666
Dim r As Decimal = Math.Ceiling(d * 100D) / 100D
12
Guffa

Voici comment je le fais:

Private Function RoundUp(value As Double, decimals As Integer) As Double

    Return Math.Ceiling(value * (10 ^ decimals)) / (10 ^ decimals)

End Function
9
Pierre Gauvin

Math.Round est ce que vous recherchez. Si vous êtes novice en matière d'arrondi dans .NET, vous devez également rechercher la différence entre AwayFromZero et ToEven arrondi. Le défaut de ToEven peut parfois prendre les gens par surprise.

dim result = Math.Round(2.56666666, 2)
7
Scott Ivey

Vous pouvez utiliser System.Math , plus précisément Math.Round() , comme ceci:

Math.Round(2.566666, 2)
3
Nick Craver

Math.Round(), comme suggéré par d'autres, est probablement ce que vous voulez. Mais le texte de votre question demandait spécifiquement comment "arrondir" [sic]. Si vous avez toujours besoin d'arrondir, quelle que soit la valeur réelle (par exemple: 2,561111 irait quand même à 2,57), vous pouvez le faire:

Math.Ceiling(d * 100)/100D
1
Joel Coehoorn

J'ai utilisé de cette façon:

Math.Round(d + 0.49D, 2)
1
user5856137

Math.Ceiling (d) est la fonction de base pour arrondir les chiffres, mais le demandeur a voulu arrondir les chiffres après la deuxième décimale. Ce serait Math.Ceiling (d * 100)/100. Par exemple, il peut multiplier 46,5671 par 100 pour obtenir 4656,71, puis arrondir pour obtenir 4657, puis diviser par 100 pour décaler la position décimale arrière de 46,57.

0
Crazy Coder 13