Форматировать десятичное значение для строки с ведущими пробелами
Как преобразовать десятичное значение в строку с одной цифрой после запятой/точкой и ведущими пробелами для значений менее 100?
Например, десятичное значение 12.3456
должно выводиться как " 12.3"
с одним ведущим пространством. 10.011
будет " 10.0"
. 123.123
"123.1"
Я ищу решение, которое работает со стандартным/настраиваемым форматированием строк, т.е.
decimal value = 12.345456;
Console.Write("{0:magic}", value); // 'magic' would be a fancy pattern.
Ответы
Ответ 1
Этот шаблон {0,5:###.0}
должен работать:
string.Format("{0,5:###.0}", 12.3456) //Output " 12.3"
string.Format("{0,5:###.0}", 10.011) //Output " 10.0"
string.Format("{0,5:###.0}", 123.123) //Output "123.1"
string.Format("{0,5:###.0}", 1.123) //Output " 1.1"
string.Format("{0,5:###.0}", 1234.123)//Output "1234.1"
Ответ 2
value.ToString("N1");
Измените число для более десятичных знаков.
EDIT: пропущен бит дополнений
value.ToString("N1").PadLeft(1);
Ответ 3
Все вышеприведенное решение будет округлять десятичные числа, на случай, если кто-то ищет решение без округления
decimal dValue = Math.Truncate(1.199999 * 100) / 100;
dValue .ToString("0.00");//output 1.99