Подтвердить что ты не робот

Форматировать двойной тип с минимальным количеством десятичных цифр

Мне нужно форматировать двойной тип, чтобы он имел минимум две десятичные цифры, но без ограничения для максимального количества десятичных цифр:

5     -> "5.00"
5.5   -> "5.50"
5.55  -> "5.55"
5.555 -> "5.555"
5.5555 -> "5.5555"

Как я могу это достичь?

4b9b3361

Ответ 1

Попробуйте это

    static void Main(string[] args)
    {
        Console.WriteLine(FormatDecimal(1.678M));
        Console.WriteLine(FormatDecimal(1.6M));
        Console.ReadLine();

    }

    private static string FormatDecimal(decimal input)
    {
        return Math.Abs(input - decimal.Parse(string.Format("{0:0.00}", input))) > 0 ?
            input.ToString() :
            string.Format("{0:0.00}", input);
    }

Ответ 2

Вы можете использовать спецификатор формата 0 для необязательных цифр и # для необязательных цифр:

n.ToString("0.00###")

В этом примере вы получите до пяти десятичных цифр, вы можете добавить дополнительные позиции # по мере необходимости.

Ответ 3

Что-то вроде ToString("0.00#") должно работать

В этом случае он будет максимальным до трех знаков после запятой, поэтому добавьте хеш по мере необходимости.