Вход/Регистрация
Полное руководство. С# 4.0
вернуться

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

Шрифт:

Таблица 21.3. Методы, поддерживаемые структурой Single Метод Назначение public int CompareTo(object value) Сравнивает числовое значение вызывающего объекта со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное число, если вызывающий объект имеет меньшее значение, и, наконец, положительное значение, если вызывающий объект имеет большее значение public int CompareTo(float value) Сравнивает числовое значение вызывающего объекта со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное число, если вызывающий объект имеет меньшее значение, и, наконец, положительное значение, если вызывающий объект имеет большее значение public override bool Equals(object obj) Возвращает логическое значение true, если значение вызывающего объекта равно значению obj public bool Equals(float obj) Возвращает логическое значение true, если значение вызывающего объекта равно значению obj public override int GetHashCode Возвращает хеш-код для вызывающего объекта public TypeCode GetTypeCode Возвращает значение из перечисления TypeCode для структуры Single, т.е. TypeCode.Single public static bool IsInfinity(float f) Возвращает логическое значение true, если значение f представляет плюс или минус бесконечность. В противном случае возвращает логическое значение false public static bool IsNaN(float f) Возвращает логическое значение true, если значение f не является числовым. В противном случае возвращает логическое значение false public static bool IsPositiveInfinity(float f) Возвращает логическое значение true, если значение f представляет плюс бесконечность. В противном случае возвращает логическое значение false public static bool IsNegativeInfinity(float f) Возвращает логическое значение true, если значение f представляет минус бесконечность. В противном случае возвращает логическое значение false public static float Parse(string s) Возвращает двоичный эквивалент числа, заданного в виде символьной строки s. Если в строке не представлено числовое значение типа float, то генерируется исключение public static float Parse(string s, IformatProvider provider) Возвращает двоичный эквивалент числа, заданного в виде символьной строки s, с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider. Если в строке не представлено числовое значение типа float, то генерируется исключение public static float Parse(string s, NumberStyles styles) Возвращает двоичный эквивалент числа, заданного в виде символьной строки s, с использованием данных о стилях, определяемых параметром styles. Если в строке не представлено числовое значение типа float, то генерируется исключение public static float Parse(string s, NumberStyles styles, IformatProvider provider) Возвращает двоичный эквивалент числа, заданного в виде символьной строки s, с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider, а также сведений о стилях, обозначаемых параметром styles. Если в строке не представлено числовое значение типа float, то генерируется исключение public override string ToString Возвращает строковое представление значения вызывающего объекта public string ToString(string format) Возвращает строковое представление значения вызывающего объекта, как указано в форматирующей строке, определяемой параметром format public string ToString(IformatProvider provider) Возвращает строковое представление значения вызывающего объекта с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider public string ToString(string format, IformatProvider provider) Возвращает строковое представление значения вызывающего объекта, как указано в форматирующей строке, определяемой параметром format, но с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider public static bool TryParse(string s, out float result) Предпринимает попытку преобразовать число, заданное в виде символьной строки s, в значение типа float. При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse, который генерирует исключение при неудачном исходе преобразования public static bool TryParse(string s, NumberStyles styles, IformatProvider provider, out float result) Предпринимает попытку преобразовать числовое значение, заданное в виде символьной строки s, в значение типа float, как указано в форматирующей строке, определяемой параметром format, но с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider, а, также сведений о стилях, обозначаемых параметром styles. При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse, который генерирует исключение при неудачном исходе преобразования

Таблица 21.4. Поля, поддерживаемые структурой Single Поле Назначение public const float Epsilon Наименьшее ненулевое положительное значение public const float MaxValue Наибольшее значение, допустимое для данных типа float public const float MinValue Наименьшее значение, допустимое для данных типа float public const float NaN Значение, не являющееся числом public const float NegativeInfinity Значение, представляющее минус бесконечность public const float PositiveInfinity Значение, представляющее плюс бесконечность

Таблица 21.5. Методы, поддерживаемые структурой Double Метод Назначение public int CompareTo(object value) Сравнивает числовое значение вызывающего объекта со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное число, если вызывающий объект имеет меньшее значение, и, наконец, положительное значение, если вызывающий объект имеет большее значение public int CompareTo(double value) Сравнивает числовое значение вызывающего объекта со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное число, если вызывающий объект имеет меньшее значение, и, наконец, положительное значение, если вызывающий объект имеет большее значение public override bool Equals(object obj) Возвращает логическое значение true, если значение вызывающего объекта равно значению obj public bool Equals(double obj) Возвращает логическое значение true, если значение вызывающего объекта равно значению obj public override int GetHashCode Возвращает хеш-код для вызывающего объекта public TypeCode GetTypeCode Возвращает значение из перечисления TypeCode для структуры Double, т.е. TypeCode.Double public static bool IsInfinity(double d) Возвращает логическое значение true, если значение d представляет плюс или минус бесконечность. В противном случае возвращает логическое значение false public static bool IsNaN(double d) Возвращает логическое значение true, если значение d не является числовым. В противном случае возвращает логическое значение false public static bool IsPositiveInfinity(double d) Возвращает логическое значение true, если значение d представляет плюс бесконечность. В противном случае возвращает логическое значение false public static bool IsNegativeInfinity(double d) Возвращает логическое значение true, если значение d представляет минус бесконечность. В противном случае возвращает логическое значение false public static double Parse(string s) Возвращает двоичный эквивалент числа, заданного в виде символьной строки s. Если в строке не представлено числовое значение типа double, то генерируется исключение public static double Parse(string s, IFormatProvider provider) Возвращает двоичный эквивалент числа, заданного в виде символьной строки s, с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider. Если в строке не представлено числовое значение типа double, то генерируется исключение public static double Parse(string s, NumberStyles styles) Возвращает двоичный эквивалент числа, заданного в виде символьной строки s, с использованием данных о стилях, определяемых параметром styles. Если в строке не представлено числовое значение типа double, то генерируется исключение public static double Parse(string s, NumberStyles styles, IFormatProvider provider) Возвращает двоичный эквивалент числа, заданного в виде символьной строки s, с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider, а также данных о стилях, обозначаемых параметром styles. Если в строке не представлено числовое значение типа double, то генерируется исключение public override string ToString Возвращает строковое представление значения вызывающего объекта public string ToString(string format) Возвращает строковое представление значения вызывающего объекта, как указано в форматирующей строке, определяемой параметром format public string ToString(IformatProvider provider) Возвращает строковое представление значения вызывающего объекта с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider public string ToString(string format, IformatProvider provider) Возвращает строковое представление значения вызывающего объекта, как указано в форматирующей строке, определяемой параметром format, но с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider public static bool TryParse(string s, out double result) Предпринимает попытку преобразовать число, заданное в виде символьной строки s, в значение типа double. При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse, который генерирует исключение при неудачном исходе преобразования 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 Epsilon Наименьшее ненулевое положительное значение public const double MaxValue Наибольшее значение, допустимое для данных типа double public const double MinValue Наименьшее значение, допустимое для данных типа double public const double NaN Значение, не являющееся числом public const double NegativeInfinity Значение, представляющее минус бесконечность public const double PositiveInfinity Значение, представляющее плюс бесконечность Структура 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 (т.е. 10scale), на ко торую делится число для получения его дробной части.

Вместо того чтобы передавать каждую составляющую объекта типа 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.

  • Читать дальше
  • 1
  • ...
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: