Урок 4. Числовые литералы в C#


Все уроки по C# расположены здесь.

На этом уроке мы рассматриваем числовые литералы в C# - такие фиксированные числа, которые могут быть присвоены числовым переменным типа. Литерал как тем кажется простой, но есть некоторые важные правила.

Что такое числовой литерал?

Числовой литерал - это фиксированное число, которое может быть присвоено переменной или использовано в расчетах. Литералы иногда называют константами. Однако, этого следует избегать, так как есть другие типы констант в C#. Вот некоторые примеры литералов, назначаемых переменным

int fk = 6;        // 6 литерал
int lZ = -1;      // -1 литерал
int ValZ = 0;          // 0 литерал
double AppL = 3.142;    // 3.142 литерал
Литеральные типы данных

Числовые литералы имеют типы данных так же, как и переменные. Это может привести к непредвиденным ошибкам при компиляции кода. Например, литеральное значение 123.45 имеет тип данных double. Если вы попытаетесь назначать этот литерал переменной, определяемой как float, компиляция завершится неудачей.

float unitPri = 123.45;      // Это не скомпилируется
Проблема здесь в том, что вы не всегда можете неявно преобразовать double (123.45) в float. Компилятор C# понимает это и предотвращает компиляцию. Чтобы избежать этого, важно понять, как c# определяет тип данных литерала.

Как C# выделяет числовые литеральные типы данных

C# использует несколько простых правил для определения типа числового литерала. Во-первых, проверяется, является ли литерал целым или имеет ли он десятичную точку. Для целых чисел выбирается наименьший возможный тип данных для значения. Это не относится к short или ushort, так что целочисленный литерал будет иметь тип int, uint, long или ulong.

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

Переопределение числовых литеральных типов данных

Правила, которые c# использует для определения типа данных для литерала, являются удовлетворительными во многих ситуациях. Однако бывают случаи, когда нужный тип данных отличается от выбранного. В этих случаях к значению может быть добавлен суффикс, указывающий компилятору на использование другого типа. Например, при выделении переменной float используется суффикс 'F' или 'f'.
float unitPrice = 123.45;     // Это не скомпилируется
float unitPrice = 123.45F;    // Это скомпилируется
float unitPrice = 123.45f;    // Так тоже можно
Также и типы данных могут быть заданы с помощью суффиксов. Они показаны ниже



Эта таблица включает не все числовые типы данных C#. Типы byte, sbyte, short and ushort не имеют суффиксов. Однако целочисленные литералы могут быть назначены переменным этих типов. Они будут неявно преобразованы, предполагая, что значение находится в допустимом диапазоне.

Использование шестнадцатеричных чисел

Программисты часто работают с шестнадцатеричным, а не десятичным представлением чисел. Вы определяете шестнадцатеричные значения с префиксом '0x'. Поэтому две следующие строки кода эквивалентны

int st1 = 16;
int st2 = 0x10;
Булевы литералы

Для типа данных Boolean разрешены два литеральных значения. Эти true и false. Никакие другие значения не являются допустимыми.

bool zz = true;
bool xx = false;
Предыдущий: Урок 3. Числовые типы данных в C# | Следующий: Урок 5. Приведение числовых типов данных в C#
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, Уроки по си шарп, си шарп




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Особенности создания макросов для CorelDRAW
Установка форума на движке MyBB
Lazy loading, или появление изображений при скроллинге для ускорения сайта