Чтение онлайн

ЖАНРЫ

C# 4.0 полное руководство - 2011

Шилдт Герберт

Шрифт:

for(i = 1; i < 10; i++)

Console.WriteLine("{0}\t{1}\t{2}", i, i*i, i*i*i);

}

}

Результат выполнения этой программы выглядит следующим образом.

Число Квадрат Куб f

1

1

1

2

4

8

3

9

27

4

16

64

5

25

125

6

36

216

7

49

343

8

64

512

9

81

729

В

приведенных выше примерах сами выводимые значения не форматировались. Но ведь основное назначение спецификаторов формата — управлять внешним видом выводимых данных. Чаще всего форматированию подлежат следующие типы данных: с плавающей точкой и десятичный. Самый простой способ указать формат данных — описать шаблон, который будет использоваться в методе
WriteLine. Для этого указывается образец требуемого формата с помощью символов #, обозначающих разряды чисел. Кроме того, можно указать десятичную точку и запятые, разделяющие цифры. Ниже приведен пример более подходящего вывода результата деления 10 на 3.

Console.WriteLine("Деление 10/3 дает: {0:#.##}", 10.0/3.0);

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

Деление 10/3 дает: 3.33

В данном примере шаблон # . ## указывает методу WriteLine отобразить два десятичных разряда в дробной части числа. Следует, однако, иметь в виду, что метод WriteLine может отобразить столько цифр слева от десятичной точки, сколько потребуется для правильной интерпретации выводимого значения.

Рассмотрим еще один пример. Оператор

Console.WriteLine("{0:###,###.##}", 123456.56) ; дает следующий результат.

123,456.56

Для вывода денежных сумм, например, рекомендуется использовать спецификатор формата С.

decimal balance; balance = 12323.09m;

Console.WriteLine("Текущий баланс равен {0:C}", balance);

Результат выполнения этого фрагмента кода выводится в формате денежных сумм, указываемых в долларах США.

Текущий баланс равен $12,323.0 9

Форматом С можно также воспользоваться, чтобы представить в более подходящем виде результат выполнения рассматривавшейся ранее программы расчета цены со скидкой.

// Использовать спецификатор формата С для вывода // результата в местной валюте.

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# литералы могут быть любого простого типа. Представление каждого литерала зависит от конкретного типа. Как пояснялось ранее, символьные литералы заключаются в одинарные кавычки. Например, 1 а1 и 1 % 1 являются символьными литералами.

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

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

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

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

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

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

Поделиться с друзьями: