Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp Language Specification.doc
Скачиваний:
13
Добавлен:
26.09.2019
Размер:
4.75 Mб
Скачать

2.4.4.3Действительные литералы

Действительные литералы используются для записи значений типов float, double и decimal.

действительный_литерал: десятичные_цифры . десятичные_цифры порядок_числанеобязательно суффикс_действительного_числанеобязательно . десятичные_цифры порядок_числанеобязательно суффикс_действительного_числанеобязательно десятичные_цифры порядок_числа суффикс_действительного_числанеобязательно десятичные_цифры суффикс_действительного_числа

порядок_числа: e знакнеобязательно десятичное_число E знакнеобязательно десятичное_число

знак: один из следующих: + -

суффикс_действительного_числа: один из следующих: F f D d M m

Если суффикс_действительного_типа не указан, типом действительного литерала является double. Иначе суффикс действительного типа определяет тип действительного литерала следующим образом:

  • действительный литерал с суффиксом F или f имеет тип float. Например, литералы 1f, 1.5f, 1e10f и 123.456F все имеют тип float;

  • действительный литерал с суффиксом D или d имеет тип double. Например, литералы 1d, 1.5d, 1e10d и 123.456D все имеют тип double;

  • действительный литерал с суффиксом M или m имеет тип decimal. Например, литералы 1m, 1.5m, 1e10m и 123.456M все имеют тип decimal. Этот литерал преобразуется в значение типа decimal, принимая его точное значение и при необходимости округляя до ближайшего могущего быть представленным значения с помощью банковского округления (§4.1.7). Любой масштаб, видимый в литерале, сохраняется, если только значение не округляется и не равно нулю (в этом последнем случае знак и масштаб будут равны 0). Следовательно, синтаксический разбор литерала 2.900m создаст десятичное значение со знаком 0, коэффициентом 2900 и масштабом 3.

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

Значение действительного литерала с типом float или double определяется с помощью режима «округления до ближайшего» по стандарту IEEE.

Обратите внимание, что в действительном литерале всегда требуются десятичные цифры после десятичной точки. Например, 1.3F — это действительный литерал, а 1.F — нет.

2.4.4.4Символьные литералы

Символьный литерал представляет один символ и обычно состоит из символа в кавычках, например 'a'.

символьный_литерал: ' символ '

символ: отдельный_символ простая_управляющая_последовательность шестнадцатеричная_управляющая_последовательность управляющая_последовательность_Юникода

отдельный_знак: Любой знак за исключением знака апострофа (') (U+0027), косой черты (\) (U+005C) и символа_следующей_строки

простая_управляющая_последовательность: одно из следующих: \' \" \\ \0 \a \b \f \n \r \t \v

шестнадцатеричная_управляющая_последовательность: \x шестнадцатеричная_цифра шестнадцатеричная_цифранеобязательно шестнадцатеричная_цифранеобязательно шестнадцатеричная_цифранеобязательно

Символ, следующий за обратной косой чертой (\) в символе, должен быть одним из следующих: ', ", \, 0, a, b, f, n, r, t, u, U, x, v. В противном случае произойдет ошибка времени компиляции.

Шестнадцатеричная escape-последовательность представляет собой один символ Юникода со значением, образованным шестнадцатеричным числом, следующим за «\x».

Если значение, представленное символьным литералом, больше U+FFFF, вызывается ошибка времени компиляции.

Управляющая последовательность символов Юникода (§2.4.1) в символьном литерале должна быть в диапазоне от U+0000 до U+FFFF.

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

Escape-последовательность

Имя символа

Кодировка Юникода

\'

Одинарная кавычка

0x0027

\"

Двойные кавычки

0x0022

\\

Обратная косая черта

0x005C

\0

Null

0x0000

\a

Предупреждение

0x0007

\b

Возврат

0x0008

\f

Перевод страницы

0x000C

\n

Новая строка

0x000A

\r

Возврат каретки

0x000D

\t

Горизонтальная табуляция

0x0009

\v

Вертикальная табуляция

0x000B

The type of a character-literal is char.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]