Silverlight - круг удваивается от нуля - PullRequest
0 голосов
/ 31 мая 2010

В Silverlight метод Math.Round () не содержит перегрузки с параметром MidpointRounding.Каков наилучший подход к округлению двойного от нуля в Silverlight в этом случае?

Пример:

Math.Round (1.4) => 1

Math.Round(1.5) => 2

Math.Round (1.6) => 2

Ответы [ 2 ]

1 голос
/ 10 ноября 2011
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;

}

Примеры, включающие использование этого расширения в качестве расширения, см. В сообщении: .NET и Silverlight Rounding

1 голос
/ 31 мая 2010

Любое количество «хаков» сделает это, например:

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

Я не знаю "хорошего" способа сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...