Добавить в цитаты Настройки чтения

Страница 352 из 502

Вместо того чтобы передавать каждую составляющую объекта типа Decimal отдельно, все его составляющие можно указать в массиве, используя следующий конструктор.

<b>public Decimal(int[] bits)</b>

Три первых элемента типа int в массиве bits содержат 96-разрядное целое значение; 31-й разряд содержимого элемента bits [3] обозначает флаг знака (0 — положительное число, 1 — отрицательное число); а в разрядах 16-23 содержится масштабный коэффициент.

В структуре Decimal реализуются следующие интерфейсы: IComparable, IComparable&lt;decimal&gt;, IConvertible, IFormattable, IEquatable&lt;decimal&gt;, а также IDeserializationCallback.

В приведенном ниже примере программы значение типа decimal формируется вручную.

<b>// Сформировать десятичное число вручную.</b>

<b>using System;</b>

<b>class CreateDec {</b>

<b>  static void Main() {</b>

<b>    decimal d = new decimal(12345, 0, 0, false, 2);</b>

<b>    Console.WriteLine(d);</b>

<b>  }</b>

<b>}</b>

Эта программа дает следующий результат.

<b>123.45</b>

В данном примере значение 96-разрядного целого числа равно 12345. У него положительный знак и два десятичных разряда в дробной части.

Методы, определенные в структуре Decimal, приведены в табл.21.7, а поля — в табл. 21.8. Кроме того, в структуре Decimal определяется обширный ряд операторов и преобразований, позволяющих использовать десятичные значения вместе со значениями других типов в выражениях. Правила, устанавливающие порядок присваивания десятичных значений и их применения в выражениях, представлены в главе 3.

Таблица 21.7. Методы, определенные в структуре Decimal

Метод - Назначение

public static decimal Add(decimal "dl, decimal d2) - Возвращает значение dl + d2

public static decimal Ceiling(d) - Возвращает наименьшее целое, которое представлено в виде значения типа decimal и не меньше d. Так, если d равно 1,02, метод Ceiling() возвращает значение 2,0. А если d равно -1,02, то метод Ceiling() возвращает значение -1

public static int Compare(decimal dl, decimal d2) - Сравнивает числовое значение dl со значением d2. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если dl меньше d2; и, наконец, положительное значение, если dl больше d2

public int CompareTo(object value) Сравнивает числовое значение вызывающего объекта со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет меньшее значение; и, наконец, положительное значение, если вызывающий объект имеет большее значение

public int CompareTo(decimal value) - Сравнивает числовое значение вызывающего объекта со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет меньшее значение; и, наконец, положительное значение, если вызывающий объект имеет большее значение

public static decimal Divide(decimal dl, decimal d2) - Возвращает частное отделения dl / d2

public bool Equals(decimal value) - Возвращает логическое значение true, если значение вызывающего объекта равно значению value

public override bool Equals(object value) - Возвращает логическое значение true, если значение вызывающего объекта равно значению value

public static bool Equals(decimal dl, decimal d2) - Возвращает логическое значение true, если если dl равно d2

public static decimal Floor(decimal d) - Возвращает наибольшее целое, которое пред ставлено в виде значения типа decimal и не больше d. Так, если d равно 1,02, метод Floor() возвращает значение 1,0. А если d равно -1,02, метод Floor 0 возвращает значение -2

public static decimal FromOACurrency(long cy) - Преобразует значение су из формата денежной единицы, применяемого в компоненте OLE Automation, в его десятичный эквивалент и возвращает полученный результат

public static int[]  GetBits(decimal d) - Возвращает двоичное представление значения d в виде массива типа int. Организация этого массива описана в тексте настоящего раздела

public override int GetHashCode() - Возвращает хеш-код для вызывающего объекта

public TypeCode GetTypeCode() Возвращает значение из перечисления TypeCode для структуры Decimal, т.е. TypeCode.Decimal

public static decimal  Multiply(decimal dl, decimal d2) - Возвращает произведение dl * d2

public static decimal Negate(decimal d) - Возвращает значение -d

public static decimal Parse(string s) - Возвращает двоичный эквивалент числа, заданного в виде символьной строки s. Если в строке не представлено числовое значение типа decimal, то генерируется исключение

public static decimal Parse(string s, IFormatProvider provider) - Возвращает двоичный эквивалент числа, заданного в виде символьной строки s, с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider. Если в строке не представлено числовое значение типа decimal, то генерируется исключение

public static decimal Parse(string s, NumberStyles styles) - Возвращает двоичный эквивалент числа, заданного в виде символьной строки s, с использованием данных о стилях, определяемых параметром styles. Если в строке не представлено числовое значение типа decimal, то генерируется исключение

public static decimal Parse (string s, NumberStyles styles, IformatProvider provider) - Возвращает двоичный эквивалент числа, заданного в виде символьной строки s, с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider, а также данных о стилях, обозначаемых параметром styles. Если в строке не представлено числовое значение типа decimal, то генерируется исключение

public static decimal Remainder(decimal dl, decimal d2) - Возвращает остаток от целочисленного деления dl / d2

public static decimal Round(decimal d) - Возвращает значение d, округленное до ближайшего целого числа

public static decimal Round(decimal d, int decimals) - Возвращает значение d, округлеяное до числа с

количеством цифр в дробной части, равным значению параметра decimals, которое должно находиться в пределах от 0 до 28