Страницы

Поиск по вопросам

четверг, 2 мая 2019 г.

Как расшифровать формат метода Double.ToString()

В коде нашел следующую конструкцию
var nfi = (NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone(); nfi.NumberGroupSeparator = " ";
item.ToString("#,0.00", nfi);
Но нигде не могу найти как "расшифровывается" формат "#,0.00" (экспериментальным путем конечно установил что он форматирует число в строку с двумя знаками после запятой или двумя нулями если число целое). Но хотелось бы увидеть полный список правил расшифровки.


Ответ

В MSDN приведена полная таблица символов применяемых в настраиваемых форматах
Конкретно в данном случае используются
"," - разделитель групп и описатель масштабирования чисел - используется и в качестве разделителя групп, и в качестве описателя масштабирования чисел(number scalling).
Разделитель групп: если между двумя заполнителями для цифр ("0" или "#"), задающими форматирование целой части числа, стоит одна или несколько запятых, то между всеми группами целой части числа вставляется символ-разделитель групп.
Пример:
Описатель разделителя групп: 2147483647 ("##,#", en-US) -> 2,147,483,647 2147483647 ("##,#", es-ES) -> 2.147.483.647 Описатель масштабирования чисел: если сразу слева от явно или неявно заданного разделителя целой и дробной части стоит одна или несколько запятых, форматируемое число делится на 1000 для каждой указанной запятой. Например, если строка "0,," используется для форматирования числа 100 миллионов, то результатом является "100".
Пример:
Описатель масштабирования: 2147483647 ("#,#,,", en-US) -> 2,147 2147483647 ("#,#,,", es-ES) -> 2.147 "#" - Заместитель цифры - Заменяет знак "#" соответствующей цифрой, если такая имеется. В противном случае в результирующей строке не будет цифры. "0" - Знак-заместитель нуля - Заменяет ноль соответствующей цифрой, если такая имеется. В противном случае в результирующей строке будет стоять ноль. "." - Разделитель - Определяет расположение разделителя целой и дробной частей в результирующей строке.

Комментариев нет:

Отправить комментарий