Форматированный вывод в C#

d184d0bed180d0bcd0b0d182d0b8d180d0bed0b2d0b0d0bdd0bdd18bd0b9 d0b2d18bd0b2d0bed0b4 d0b2 c статьи

Значит, дело было так. Я писал программу на C#, в которой обрабатывалась матрица вещественных чисел, а затем выводилась в консоль. И все бы ничего, однако возникла одна проблема — вывод матрицы был просто ужасен, в том плане, что каждый элемент содержал разное количество символов, да и к тому же, количество символов, я Вам скажу, было немало. Решение данной проблемы я стал искать в Интернете. И вот, спустя некоторое время и посетив несколько сайтов, я нашел замечательную статью, под названием «String Format for Double [C#]» на сайте csharp-examples.net. Так как этот сайт полностью на английском языке, и мне очень понравилась эта статья, то я решил ее перевести.

Начнем!

В следующих примерах показано, как переводить вещественные числа в строку в C#. Для этого Вы можете использовать статический метод String.Format или методы экземпляров double.ToString и float.ToString.

Цифры после точки

В этом примере демонстрируется перевод вещественного числа в строку с фиксированным числом десятичных знаков. Например, для двух знаков используется шаблон «0.00». Если вещественное число содержит менее десятичных знаков, то оставшиеся позиции справа заполняются нулями, если же число знаков больше — производится округление.

Для получения строки с переменным количеством знаков используется символ «#». Чтобы на выходе получить строку, в которой количество десятичных знаков будет не более двух, используйте шаблон «0.##».

Цифры перед точкой

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

Разделитель тысяч

Чтобы в строках явно отделять тысячи, к обычному шаблону слева добавляется «0,» (ноль с запятой). К примеру, шаблон «0,0.0» позволяет получить строку, в которой явно отделяются тысячи, а число символов после точки будет не более одного.

Ведущие Нули

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

  1. с ведущими нулями
  2. без ведущих нулей

Случай с ведущими нулями — самый обычный. Для него используются те же шаблоны, что описаны выше.

Чтобы получать строки без ведущих нулей, используется символ «#» перед точкой. Например, по шаблону «#.0» получим строки вида «.5», «123.5».

Выравнивание с помощью пробелов

Для выравнивания числа по правому краю используется запятая перед двоеточием. То есть, ставится запятая, а следом идет число, которое указывает, сколько пробелов должно быть. Пример: «0,10:0.0″.

Для выравнивания по левому краю, шаблон будет таким же, за исключением того, что число пробелов должно быть указано со знаком минуса.

P.S. Этот способ можно использовать только с помощью метода String.Format

Пользовательское форматирование отрицательных чисел и нулей

Если Вам необходимо получить строки в своем стиле форматирования, используйте точку с запятой для разделения шаблона на три части. Первая часть отвечает за форматирование положительных чисел, вторая — отрицательных, третья — нулей. Если Вы пропустите последнюю часть, то нули будут отформатированы так же, как и положительные числа.

Некоторые забавные примеры

Как Вы могли заметить в предыдущем примере, Вы можете вставить любой текст в шаблон, например, «my text 0.0″. Вы даже можете вставить текст между нулями: «0aaa.bbb0″.

Небольшое мое дополнение к статье

В зависимости от локали (языкового стандарта программы), выводимые символы могут отличаться. Например, вместо точек выводятся запятые и т.д. К слову, у меня вместо десятичной точки выводится запятая, а вместо тысячного разделителя — пробел.

Оцените статью
Секреты программирования
Добавить комментарий