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 — это литерал типа