В C# у некоторых числовых типов существуют суффиксы, которые позволяют компилятору записать определённое значение указанного типа в переменную.
Правило: если у числового типа есть суффикс, то при записи литерала в переменную нужно его использовать. Делается это для избегания дополнительного преобразования типов, ведь по умолчанию все целочисленные литералы имеют тип int
(Int32
), а вещественного типа - тип double
(Double
).
Ниже приведена таблица, в которой наведены суффиксы.
Примеры использования создания переменных используя суффиксы и нет:
static void Main(string[] args)
{
int a = 200; // без преобразования
uint b = 200; // с преобразованием
uint c = 200u; // без преобразования
uint d = 200U; // без преобразования
long f = 100L; // без преобразования
ulong k = 2908308uL; // без преобразования
float p = 2.34f; // без преобразования
float t = 2F; // без преобразования
double m = 29; // с преобразованием
double h = 2.8; // без преобразования
double l = 22D; // без преобразования
decimal i = (decimal)27189.29;// с преобразованием
decimal j = 27189.29m; // без преобразования
//decimal g = 299.67; // ошибка, нужно либо использовать суффикс, либо использовать кастинг
}
Источник: видеоурок Александра Шевчука "ВИДЕОУРОК №2. МАШИННАЯ МАТЕМАТИКА И СИСТЕМЫ СЧИСЛЕНИЯ"