>
> 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, их можно присваивать переменным типа