KnigaRead.com/
KnigaRead.com » Разная литература » Прочее » Герберт Шилдт - C# 4.0 полное руководство - 2011

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн "Герберт Шилдт - C# 4.0 полное руководство - 2011". Жанр: Прочее издательство неизвестно, год неизвестен.
Перейти на страницу:

Метод

Назначение

public static bool TryParse(string s, NumberStyles styles, IFormatProvider provider, out double result)

Предпринимает попытку преобразовать числовое значение, заданное в виде символьной строки s, в значение типа double, как указано в форматирующей строке, определяемой параметром format, но с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider, а также сведений о стилях, обозначаемых параметром styles. При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse (), который генерирует исключение при неудачном исходе преобразования

Таблица 21.6. Поля, поддерживаемые структурой Double

Поле

Назначение

public const double public const double MaxValue

public const double MinValue

public const double public const double NegativeInfinity public const double PositiveInfinity

Epsilon

NaN

Наименьшее ненулевое положительное значение Наибольшее значение, допустимое для данных типа

double

Наименьшее значение, допустимое для данных типа

double

Значение, не являющееся числом

Значение, представляющее минус бесконечность

Значение, представляющее плюс бесконечность

Структура Decimal

Структура Decimal немного сложнее, чем ее аналоги для целочисленных типов данных, а также типов данных с плавающей точкой. Она содержит немало конструкторов, полей, методов и операторов, способствующих использованию типа decimal вместе с другими числовыми типами, поддерживаемыми в С#. Так, целый ряд методов из этой структуры обеспечивает преобразование типа decimal в другие числовые типы.

В структуре Decimal определено восемь открытых конструкторов. Ниже приведены шесть наиболее часто используемых из них.

public Decimal(int значение) public Decimal(uint значение) public Decimal(long значение) public Decimal(ulong значение) public Decimal(float значение) public Decimal(double значение)

Каждый из этих конструкторов создает объект типа Decimal из значения указанного типа.

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

public Decimal(int lo, int mid, int hi, bool IsNegative, byte scale)

Десятичное значение состоит из трех частей. Первую часть составляет 96-разрядное целое значение, вторую — флаг знака, третью — масштабный коэффициент. В частности, 96-разрядное целое значение передается конструктору тремя 32-разрядными фрагментами с помощью параметров lo, mid и hi; знак флага — с помощью параметра IsNegative, причем логическое значение false этого параметра обозначает положительное число, тогда как логическое значение true обозначает отрицательное число; а масштабный коэффициент — с помощью параметра scale, принимающего значения от 0 до 28. Этот коэффициент обозначает степень числа 10 (т.е. 10scaJe), на которую делится число для получения его дробной части.

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

public Decimal(int[] bits)

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

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

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

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

using System;

class CreateDec {

static void Main() {

decimal d = new decimal(12345, 0, 0, false, 2);

Console.WriteLine(d);

}

}

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

123.45

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

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

Глава 21. Пространство имен System 737 Таблица 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

Сравнивает числовое значение dl со значением

Compare(decimal dl, decimal d2)

d2. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если dl меньше d2; и, наконец, положительное значение, если dl больше d2

public int CompareTo(object

Сравнивает числовое значение вызывающего

value)

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

public int CompareTo(decimal

Сравнивает числовое значение вызывающего объ

value)

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

public static decimal Divide(decimal dl,

Возвращает частное отделения dl / d2

decimal d2)

public bool Equals(decimal

Возвращает логическое значение true, если

value)

значение вызывающего объекта равно значению value

public override bool

Возвращает логическое значение true, если

Equals(object value)

значение вызывающего объекта равно значению value

public static bool

Возвращает логическое значение true, если

Equals(decimal dl, decimal d2)

если 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

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*