Console.WriteLine("Значение в тысячах: {0:#,###,.#}", 8763421.3);
дает такой результат.
Значение в тысячах: 8,763.4
Как показывает приведенный выше результат, числовое значение выводится масштабированным в тысячах.
Помимо символов-заполнителей, пользовательский спецификатор формата может содержать любые другие символы, которые появляются в отформатированной строке без изменения на тех местах, где они указаны в спецификаторе формата. Например, при выполнении следующего фрагмента кода:
Console.WriteLine("КПД топлива: {0:##.# миль на галлон }", 21.3);
выводится такой результат.
КПД топлива: 21.3 миль на галлон
При необходимости в форматируемой строке можно также указывать такие управляющие последовательности, как \t
или \n
.
Символы-заполнители Еи еобусловливают отображение числовых значений в экспоненциальном представлении. В этом случае после символа Еили едолжен быть указан хотя бы один нуль, хотя их может быть и больше. Нули обозначают количество отображаемых десятичных цифр. Дробная часть числового значения округляется в соответствии с заданным форматом отображения. Если указывается символ Е, то он отображается прописной буквой " Е". А если указывается символ е, то он отображается строчной буквой " е". Для того чтобы знак порядка отображался всегда, используются формы Е+или е+. А для отображения знака порядка только при выводе отрицательных значений служат формы Е, е, Е-или е-.
Знак ;служит разделителем в различных форматах вывода положительных, отрицательных и нулевых значений. Ниже приведена общая форма пользовательского спецификатора формата, в котором используется знак ;.
положительный_формат; отрицательный_формат; нулевой_формат
Рассмотрим следующий пример.
Console.WriteLine("{0:#.##; (#.##);0.00}", num);
Если значение переменной num
положительно, то оно отображается с двумя разрядами после десятичной точки. Если же значение переменной num
отрицательно, то оно также отображается с двумя разрядами после десятичной точки, но в круглых скобках. А если значение переменной num
равно нулю, то оно отображается в виде строки 0.00. Когда используются разделители, указывать все части приведенной выше фррмы пользовательского спецификатора формата совсем не обязательно. Так, если требуется вывести только положительные или отрицательные значения, нулевой_ формат можно опустить. (В данном случае нуль форматируется как положительное значение.) С другой стороны, можно опустить отрицательный_формат. И в этом случае положительный_формат и нулевой_формат должны разделяться точкой с запятой. А в итоге положительный_формат будет использоваться для форматирования не только положительных, но и отрицательных значений.
В приведенном ниже примере программы демонстрируется лишь несколько специальных форматов, которые могут быть определены пользователем.
// Пример применения специальных форматов,
using System;
class PictureFormatDemo {
static void Main() {
double num = 64354.2345;
Console.WriteLine("Формат по умолчанию: " + num);
// Отобразить числовое значение с 2 разрядами после десятичной точки.
Console.WriteLine("Значение с 2 десятичными разрядами: " +
"{0:#.##}", num);
// Отобразить числовое значение с 2 разрядами после
// десятичной точки и запятыми перед ней.
Console.WriteLine("Добавить запятые: {0:#,###.##}", num);
// Отобразить числовое значение в экспоненциальном представлении.
Console.WriteLine("Использовать экспоненциальное представление: " +
"{0:#.###е+00}", num);
// Отобразить числовое значение, масштабированное в тысячах.
Console.WriteLine("Значение в тысячах: " + "{0:#0,}", num) ;
/* Отобразить по-разному положительные, отрицательные и нулевые значения. */
Console.WriteLine("Отобразить по-разному положительные," +
"отрицательные и нулевые значения.");
Console.WriteLine("{0:#.#; (#.##);0.00}", num);
num = -num;
Console.WriteLine("{0:#.##;(#.##);0.00}", num);
num = 0.0;
Читать дальше