C# 4.0 полное руководство - 2011
Шрифт:
Окончание табл. 21.5
Метод
Назначение
public static bool TryParse(string s, NumberStyles styles, IFormatProvider provider, out double result)
Предпринимает попытку преобразовать числовое значение, заданное в виде символьной строки s, в значение
Таблица 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)
Десятичное
Вместо того чтобы передавать каждую составляющую объекта типа 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.