Мой совет: прекратите использовать double
в первую очередь .Если вам нужно десятичное округление, то шансы хорошие, вы должны использовать decimal
.Какова ваша заявка?
Если у вас есть двойной, вы можете сделать это следующим образом:
double r = whatever;
decimal d = (decimal)r;
decimal truncated = decimal.Truncate(d * 100m) / 100m;
Обратите внимание, что этот метод не будет работать, если абсолютное значение двойного больше, чем792281625142643375935439504, потому что умножение на 100 не удастся.Если вам нужно обрабатывать такие большие значения, вам нужно использовать специальные методы.(Конечно, к тому времени, когда число double настолько велико, вы все равно уже не способны представлять значения с двумя цифрами после десятичного знака).