In. NET, у меня есть значение в двойной переменной, которое мне нужно преобразовать в десятичное с указанным количеством десятичных знаков, округляя по мере необходимости. Ответ, который я ищу, будет иметь примерно такой прототип:
decimal DoubleToDecimal(double value, int numberOfDecimalPlaces)
Лучшее, что я смог придумать, преобразует двойное значение в строку с правильным числом десятичных разрядов, а затем анализирует его обратно в десятичную дробь:
return decimal.Parse(
double.ToString("0." + new string(numberOfDecimalPlaces,'0'))
);
Я бы предпочел способ, который не включает преобразование в / из строки, поскольку это кажется довольно неэффективным.