×
Traktatov.net » C# 4.0: полное руководство » Читать онлайн
Страница 37 из 650 Настройки

>

>    decimal discounted_price;

>    // рассчитать цену со скидкой,

>    price = 19.95m;

>    discount = 0.15m; // норма скидки составляет 15%

>    discounted_price = price - ( price * discount);

>    Console.WriteLine("Цена со скидкой: {0:C}", discounted_price);

>  }

>}


Вот как теперь выглядит результат выполнения этой программы.


>Цена со скидкой: 16,96 грн.


Литералы

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

В C# литералы могут быть любого простого типа. Представление каждого литерала зависит от конкретного типа. Как пояснялось ранее, символьные литералы заключаются в одинарные кавычки. Например, 'а' и '%' являются символьными литералами.

Целочисленные литералы указываются в виде чисел без дробной части. Например, 10 и -100 — это целочисленные литералы. Для обозначения литералов с плавающей точкой требуется указывать десятичную точку и дробную часть числа. Например, 11.123 — это литерал с плавающей точкой. Для вещественных чисел с плавающей точкой в C# допускается также использовать экспоненциальное представление.

У литералов должен быть также конкретный тип, поскольку C# является строго типизированным языком. В этой связи возникает естественный вопрос: к какому типу следует отнести числовой литерал, например 2,123987 или 0.23? К счастью, для ответа на этот вопрос в C# установлен ряд простых для соблюдения правил.

Во-первых, у целочисленных литералов должен быть самый мелкий целочисленный тип, которым они могут быть представлены, начиная с типа int. Таким образом, у целочисленных литералов может быть один из следующих типов: >int, uint, long или >ulong в зависимости от значения литерала. И во-вторых, литералы с плавающей точкой относятся к типу >double.

Если вас не устраивает используемый по умолчанию тип литерала, вы можете явно указать другой его тип с помощью суффикса. Так, для указания типа >long к литералу присоединяется суффикс l или L. Например, 12 — это литерал типа >int, a 12L — литерал типа >long. Для указания целочисленного типа без знака к литералу присоединяется суффикс u или U. Следовательно, 100 — это литерал типа >int, a 100U — литерал типа >uint. А для указания длинного целочисленного типа без знака к литералу присоединяется суффикс ul или UL. Например, 984375UL — это литерал типа >ulong.

Кроме того, для указания типа >float к литералу присоединяется суффикс F или f. Например, 10.19F — это литерал типа >float. Можете даже указать тип >double, присоединив к литералу суффикс d или D, хотя это излишне. Ведь, как упоминалось выше, по умолчанию литералы с плавающей точкой относятся к типу >double.

И наконец, для указания типа >decimal к литералу присоединяется суффикс m или М. Например, 9.95М — это десятичный литерал типа >decimal.

Несмотря на то что целочисленные литералы образуют по умолчанию значения типа int, uint, long или ulong, их можно присваивать переменным типа