В 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. МАШИННАЯ МАТЕМАТИКА И СИСТЕМЫ СЧИСЛЕНИЯ"
 предыдущая статья
  предыдущая статья