2010-05-31 5 views
0

Dans Silverlight, la méthode Math.Round() ne contient pas de surcharge avec le paramètre 'MidpointRounding'. Quelle est la meilleure approche pour arrondir un double de zéro dans Silverlight dans ce cas?Silverlight - round double de zéro

Exemple:

Math.Round (1,4) => 1

Math.Round (1,5) => 2

Math.Round (1,6) => 2

Répondre

1

Tous nombre de « hacks » fera, par exemple:

Public Shared Function SpecialRound(ByVal inVal) As Double 
    if (inVal < 0) 
     Return Math.Ceil(inVal-0.5) 
    Return Math.Floor(inVal+0.5) 
End Function 

Je ne sais pas d'une façon « bon » pour le faire.

1
public double RoundCorrect(double d, int decimals) 
{ 
    double multiplier = Math.Pow(10, decimals); 

    if (d < 0) 
     multiplier *= -1; 

    return Math.Floor((d * multiplier) + 0.5)/multiplier; 

} 

Pour les exemples, y compris comment l'utiliser comme une extension voir le message: .NET and Silverlight Rounding