C# 4.0: полное руководство | страница 46
>// Использовать спецификатор формата С для вывода 
>// результата в местной валюте.
>using System;
>class UseDecimal { 
>  static void Main() { 
>    decimal price; 
>    decimal discount; 
>    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 — это литерал типа