Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


В приведенной ниже программе демонстрируется применение нескольких спецификаторов формата числовых данных.




// Продемонстрировать применение различных // спецификаторов формата числовых данных.

Using System;

class FormatDemo {

static void Main() { double v = 17688.65849; double v2 = 0.15; int x = 21;

Console.WriteLine("{0:F2}", v);

Console.WriteLine("{0:N5}", v);

Console.WriteLine ("{0:e}", v);

Console.WriteLine("{0:r}", v);

Console.WriteLine("{0:p}", v2);

Console.WriteLine("{0:X}", x);

Console.WriteLine("{0:D12}", x);

Console.WriteLine("{0:C}", 189.99);

}

}

Эта программа дает следующий результат.

17688.66

17.688.65849 1.768866е+004

17688.65849 15.00 %

$189.99

Обратите внимание на действие спецификатора точности в нескольких форматах.

Представление о номерах аргументов

Следует иметь в виду, что аргумент, связанный со спецификатором формата, определяется номером аргумента, а не его позицией в списке аргументов. Это означает, что один и тот же аргумент может указываться неоднократно в одном вызове метода WriteLine(). Эта также означает, что аргументы могут отображаться в той последовательности, в какой они указываются в списке аргументов. В качестве примера рассмотрим следующую программу.

Using System;

class FormatDemo2 { static void Main() {

// Форматировать один и тот же аргумент тремя разными способами.

Console.WriteLine("{0:F2} {0:F3} {0:е}", 10.12345);

// Отобразить аргументы не по порядку.

Console.WriteLine("{2:d} {0:d} {l:d}", 1, 2, 3);

}

}

Ниже приведен результат выполнения этой программы.

10.12 10.123 1.012345е+001 3 12

В первом операторе вызова метода WriteLine () один и тот же аргумент 10.12345 форматируется тремя разными способами. Это вполне допустимо, поскольку каждый спецификатор формата в этом вызове обозначает первый и единственный аргумент. А во втором вызове метода WriteLine () три аргумента отображаются не по порядку. Не следует забывать, что каких-то особых правил, предписывающих обозначать аргументы в спецификаторах формата в определенной последовательности, не существует. Любой спецификатор формата может обозначать какой угодно аргумент.

Применение методов String. Format () и ToString () для форматирования данных

Несмотря на все удобства встраивания команд форматирования выводимых данных в вызовы метода WriteLine (), иногда все же требуется сформировать строку, содержащую отформатированные данные, но не отображать ее сразу. Это дает возможность отформатировать данные заранее, чтобы вывести их в дальнейшем на выбранное устройство. Такая возможность особенно полезна для организации работы в среде с графическим пользовательским интерфейсом, подобной Windows, где ввод-вывод на консоль применяется редко, а также для подготовки вывода на веб-страницу.

Вообще говоря, отформатированное строковое представление отдельного значения может быть получено двумя способами. Один из них состоит в применении метода String. Format (), а другой — в передаче спецификатора формата методу ToStringO, относящемуся к одному из встроенных в C# числовых типов данных. Оба способа рассматриваются далее по порядку.

Применение метода String. Format () для форматирования значений

Для получения отформатированного значения достаточно вызвать метод Format (), определенный в классе String, в соответствующей его форме. Все формы этого метода перечислены в табл. 22.5. Метод Format () аналогичен методу WriteLine (), за исключением того, что он возвращает отформатированную строку, а не выводит ее на консоль.

 

Метод

 

Описание

 

Public

 

Static string

 

Форматирует объект argO в соответствии с первой ко

 

Format

 

(string format,

 

мандой форматирования, которая содержится в строке

 

Obj ect

 

argO)

 

format. Возвращает копию строки format, в которой команда форматирования заменена отформатированными данными

 

Public

 

Static string

 

Форматирует объект argO в соответствии с первой

 

Format

 

(string format,

 

командой форматирования, содержащейся в строке

 

Object

 

argO, object argl)

 

format, а объект argl в соответствии со второй командой. Возвращает копию строки format, в которой команды форматирования заменены отформатированными данными

 

Public

 

Static string

 

Форматирует объекты argO, argl и агд2 по соответ

 

Format

 

(string format,

 

ствующим командам форматирования, содержащимся

 

Obj ect

 

argO, object argl,

 

в строке format. Возвращает копию строки format, в

 

Obj ect

 

arg2)

 

которой команды форматирования заменены отформатированными данными

 

Public

 

Static string

 

Форматирует значения, передаваемые в массиве args,

 

Format

 

(string format,

 

в соответствии с командами форматирования, содержа

 

Params

 

object[] args)

 

щимися в строке format. Возвращает копию строки format, в которой команды форматирования заменены отформатированными данными

 

Public

 

Static string

 

Форматирует значения, передаваемые в массиве args,

 

Format

 

(IFormatProvider

 

в соответствии с командами форматирования, содержа

 

provider, string format,

 

щимися в строке format, используя поставщик фор

 

Params

 

object[] args)

 

мата provider. Возвращает копию строки format, в которой команды форматирования заменены отформатированными данными

 

Ниже приведен вариант предыдущего примера программы форматирования, измененный с целью продемонстрировать применение метода String. Format (). Этот вариант дает такой же результат, как и предыдущий.

// Использовать метод String.Format() для форматирования значений, using System;

class FormatDemo { static void Main() {

double v = 17688.65849; double v2 = 0.15; int x = 21;

string str = String.Format("{0:F2}", v);

Console.WriteLine(str);

str = String.Format("{0:N5}", v); Console.WriteLine(str);

str = String.Format("{0:e}", v); Console.WriteLine(str);

str = String.Format("{0:r}", v); Console.WriteLine (str);

str = String.Format("{0:p}", v2); Console.WriteLine(str);

str = String.Format("{0:X}", x); Console.WriteLine(str);

str = String.Format("{0:D12}", x); Console.WriteLine(str);

str = String.Format("{0:C}", 189.99); Console.WriteLine (str);

}

}

Аналогично методу WriteLine (), метод String. Format () позволяет встраивать в свой вызов обычный текст вместе со спецификаторами формата, причем в вызове данного метода может быть указано несколько спецификаторов формата и значений. В качестве примера рассмотрим еще одну программу, отображающую текущую сумму и произведение чисел от 1 до 10.

// Еще один пример применения метода Format().

Using System;

class FormatDemo2 { static void Main() { int i;

int sum = 0; int prod = 1; string str;

/* Отобразить текущую сумму и произведение чисел от 1 до 10. */ for(i=l; i <= 10; i++) {

sum += i; prod *= i;

str = String.Format("Сумма:{0,3:D} Произведение:{1,8:D}", sum, prod);

Console.WriteLine(str);

}

Сумма: 45 Произведение: 362880

Сумма: 55 Произведение: 3628800





Поделиться с друзьями:


Дата добавления: 2016-12-03; Мы поможем в написании ваших работ!; просмотров: 483 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студенческая общага - это место, где меня научили готовить 20 блюд из макарон и 40 из доширака. А майонез - это вообще десерт. © Неизвестно
==> читать все изречения...

2372 - | 2321 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.