Мой совет: Остановить использование double
во-первых. Если вам нужно десятичное округление, то шансы хорошие, вы должны использовать decimal
. Какова ваша заявка?
Если у вас есть двойной, вы можете сделать это следующим образом:
double r = whatever;
decimal d = (decimal)r;
decimal truncated = decimal.Truncate(d * 100m)/100m;
Обратите внимание, что этот метод не сработает, если абсолютное значение вдвое больше, чем 792281625142643375935439504, так как умножение на 100 не получится , Если вам нужно обрабатывать большие значения, вам нужно будет использовать специальные методы. (Конечно, к тому времени дважды в том, что большой, вы далеко за пределами своей способности представлять значения с двумя цифрами после десятичной точки в любом случае.)
Если вы работа в * десятичном формате *, то почему вы используете * double *, когда можете использовать * десятичный *? –
Вы можете перейти к этому сообщению и найти то, что вам подходит http://how-to-code-net.blogspot.ro/2012/09/how-to-format-number-to-x-decimal.html –