Как добавить точность к десятичному значению

Я хочу добавить точность к десятичному значению. Например, у меня есть это значение:

decimal number = 10;

Я хочу сделать это 10.00. Я не хочу преобразовывать его в string как number.ToString("#.00")

В настоящее время у меня есть этот метод:

decimal CalculatePrecision(decimal value, int precision)
{
    var storedCalculated = decimal.Divide(1, Convert.ToDecimal(Math.Pow(10, precision)));
    return value + storedCalculated - storedCalculated;
}

Есть ли хорошее решение для этого?


person Dilshod K    schedule 16.12.2020    source источник
comment
Можете ли вы объяснить, почему вы думаете, что хотите этого?   -  person Silvermind    schedule 16.12.2020
comment
@Silvermind, мне нужно это в процессе десериализации. Когда это 10 без точек, это выглядит как целое число, но это десятичный тип   -  person Dilshod K    schedule 16.12.2020
comment
Мне нужно поместить некоторую логику в установку свойства   -  person Dilshod K    schedule 16.12.2020
comment
Многие решения здесь десятичное значение до 2 знаков после запятой"> stackoverflow.com/questions/164926/   -  person MichaelMao    schedule 16.12.2020
comment
Некоторые сериализаторы поддерживают украшение ваших свойств атрибутами преобразования, которые используются при сериализации объекта.   -  person Silvermind    schedule 16.12.2020
comment
Как сериализовать объект?   -  person Magnus    schedule 16.12.2020


Ответы (2)


Вы не можете. 10 и 10.00 - это одно и то же число. Только подача другая. Оба представления являются строками. Реальный номер выглядит иначе. Если вам нужно изменить представление, преобразуйте в строку.

person EricSchaefer    schedule 16.12.2020

Как насчет

 decimal d = 10;
 d += 0.00M;
 Console.WriteLine(d);

Попробуйте ссылку

Math.Round не сохраняет конечный ноль

Как отобразить десятичное значение до 2 десятичных знаков места?

person MichaelMao    schedule 16.12.2020