Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретический_курс.doc
Скачиваний:
36
Добавлен:
10.11.2019
Размер:
7.68 Mб
Скачать

8. Таблица форматирования числовых результатов

Для форматирования числовых результатов можно использовать метод String.Format, а также метод Console.Write или Console.WriteLine, который вызывает метод String.Format. Формат задаётся с помощью строк формата. В следующей таблице приведены поддерживаемые строки стандартных форматов. Строка формата принимает следующую форму: Axx, где A — описатель формата, а xx — описатель точности. Описатель формата управляет типом форматирования, применяемым к числовому значению, а описатель точности управляет количеством значащих цифр или десятичных знаков форматированного результата:

Знак

Описание

Примеры

Output

C или c

Валюта

Console.Write("{0:C}", 2.5);

Console.Write("{0:C}", -2.5);

$2.50

($2.50)

D или d

Десятичное число

Console.Write("{0:D5}", 25);

00025

E или e

Научный формат

Console.Write("{0:E}", 250000);

2.500000E+005

F или f

Формат с фиксированной запятой

Console.Write("{0:F2}", 25);

Console.Write("{0:F0}", 25);

25.00

25

G или g

Общий формат

Console.Write("{0:G}", 2.5);

2.5

N или n

Числовой формат

Console.Write("{0:N}", 2500000);

2,500,000.00

X или x

Шестнадцатеричный формат

Console.Write("{0:X}", 250);

Console.Write("{0:X}", 0xffff);

FA

FFFF

3.4.2. Понятие «Переменная», «Поле» и «Константа» Понятие «Переменная», «Поле» и «Константа»

1. Понятие «Переменная»

Синтаксис объявления переменных в С# выглядит следующим образом:

<тип данных> <имя идентификатора>

Например:

int i;

Объявить можно переменную любого действительного типа. Важно подчеркнуть, что возможности переменной определяются её типом. Например, переменную типа bool нельзя использовать для хранения числовых значений с плавающей точкой. Кроме того, тип переменной нельзя изменять в течение срока её существования. В частности, переменную типа int нельзя преобразовать в переменную типа char.

Все переменные в С# должны быть объявлены до их применения. Это нужно для того, чтобы уведомить компилятор о типе данных, хранящихся в переменной, прежде чем он попытается правильно скомпилировать любой оператор, в котором используется переменная. Это позволяет также осуществлять строгий контроль типов в С#.

2. Инициализация переменной

Задать значение переменной можно, в частности, с помощью оператора присваивания. Кроме того, задать начальное значение переменной можно при её объявлении. Для этого после имени переменной указывается знак равенства «=» и присваиваемое значение. Если две или более переменные одного и того же типа объявляются списком, разделяемым запятыми, то этим переменным можно задать, например, начальное значение. Ниже приведена общая форма инициализации переменной:

int i = 10; // Задаём целочисленной переменной i значение 10

char symbol = 'Z'; // Инициализируем переменную symbol буквенным значением Z

float f = 15.7F; // Переменная f инициализируется числовым значением 15.7

int x = 5, y = 10, z = 12; // Инициализируем несколько переменных одного типа

Инициализация переменных демонстрирует пример обеспечения безопасности С#. Коротко говоря, компилятор С# требует, чтобы любая переменная была инициализирована некоторым начальным значением, прежде чем можно было обратиться к ней в какой-то операции. В большинстве современных компиляторов нарушение этого правила определяется и выдается соответствующее предупреждение, но «всевидящий» компилятор С# трактует такие нарушения как ошибки. Это предохраняет от нечаянного получения значений «мусора» из памяти, оставшегося там от других программ.

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

  • Переменные, являющиеся полями класса или структуры, если не инициализированы явно, по умолчанию обнуляются в момент создания.

  • Переменные, локальные по отношению к методу, должны быть явно инициализированы в коде до появления любого оператора, в котором используются их значения. В данном случае при объявлении переменной её инициализация не происходит автоматически, но компилятор проверит все возможные пути потока управления в методе и сообщит об ошибке, если обнаружит любую возможность использования значения этой локальной переменной до ее инициализации.

Например, в С# поступить следующим образом нельзя:

public static int Main()

{

int d;

Console.WriteLine(d); // Так нельзя!

// Необходимо инициализировать d перед использованием

return 0;

}