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.

 

Таблица 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

public static decimal Round(decimal d, MidPoiritRounding mode) -  Возвращает значение d, округленное до ближайшего целого числа в режиме, определяемом параметром mode. Режим округления применяется лишь в том случае, если значение d оказывается посредине между двумя целыми числами

public static decimal Round(decimal d, int decimals,  MidPointRounding mode) -  Возвращает значение d, округленное до числа с количеством цифр в дробной части, равным значению параметра decimals , которое должно находиться в пределах от 0 до 28, а параметр mode определяет режим округления. Режим округления применяется лишь в том случае, если значение d оказывается посредине между двумя округляемыми числами

public static decimal Subtract(decimal d1, decimal d2) -  Возвращает разность d1 - d2

public static byte ToByte(decimal value) -  Возвращает эквивалент значения value типа byte. Дробная часть отбрасывается. Если значение value оказывается вне диапазона представления чисел для типа byte, то генерируется исключение OverflowException

public static double ToDouble(decimal d) -  Возвращает эквивалент значения типа double.  При этом возможна потеря точности, поскольку у значения типа double меньше значащих цифр, чем у значения типа decimal

public static short Tolntl6(decimal d)  Возвращает эквивалент значения типа short.  Дробная часть отбрасывается. Если значение d оказывается вне диапазона представления чисел для типа short, то генерируется исключение OverflowException

public static int ToInt32(decimal d) -  Возвращает эквивалент значения d типа int.  Дробная часть отбрасывается. Если значение d оказывается вне диапазона представления чисел для типа int, то генерируется исключение OverflowException

public static long ToInt64(decimal d) -  Возвращает эквивалент значения d типа long.  Дробная часть отбрасывается. Если значение d оказывается вне диапазона представления чисел для типа long, то генерируется исключение OverflowException

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

public static sbyte ToSByte(decimal value) -  Возвращает эквивалент значения value типа sbyte. Дробная часть отбрасывается. Если значение value оказывается вне диапазона представления чисел для типа sbyte, то генерируется исключение OverflowException

public static float ToSingle(decimal d) -  Возвращает эквивалент значения типа float.  Дробная часть отбрасывается. Если значение d оказывается вне диапазона представления чисел для типа float, то генерируется исключение OverflowException

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 ushort ToUIntl6(decimal value) -  Возвращает эквивалент значения value типа ushort. Дробная часть отбрасывается. Если значение value оказывается вне диапазона представления чисел для типа ushort, то генерируется исключение OverflowException

public static uint ToUInt32(decimal d) -  Возвращает эквивалент значения типа uint.  Дробная часть отбрасывается. Если значение d оказывается вне диапазона представления чисел для типа uint, то генерируется исключение OverflowException

public static ulong ToUInt64(decimal d) Возвращает эквивалент значения типа ulong.  Дробная часть отбрасывается. Если значение d оказывается вне диапазона представления чисел для типа ulong, то генерируется исключение OverflowException

public static decimal Truncate(decimal d)  Возвращает целую часть числа d. Дробная часть отбрасывается

 

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

public static readonly decimal MaxValue - максимальное число

public static readonly decimal MinusOne - -1

public static readonly decimal MinValue - минимальное число

public static readonly decimal One - единица

public static readonly decimal Zero - ноль

 

 

Структура Char

 

Структура Char соответствует типу char и применяется довольно часто, поскольку предоставляет немало методов, позволяющих обрабатывать символы и распределять их по отдельным категориям. Например, символ строчной буквы можно преобразовать в символ прописной буквы, вызвав метод ToUpper(), а с помощью метода IsDigit() можно определить, обозначает ли символ цифру.

Методы, определенные в структуре Char, приведены в табл. 21.9. Следует, однако, иметь в виду, что некоторые методы, например ConvertFromUtf32() и ConvertToUtf32(), позволяют обрабатывать символы уникода в форматах UTF-16 и UTF-32. Раньше все символы уникода могли быть представлены 16 разрядами, что соответствует величине значения типа char. Но несколько лет назад набор символов уникода был расширен, для чего потребовалось более 16 разрядов. Каждый символ уникода представлен кодовой точкой, а способ кодирования кодовой точки зависит от используемого формата преобразования уникода (UTF). Так, в формате UTF-16 для кодирования большинства кодовых точек требуется одно 16-разрядное значение, а для кодирования остальных кодовых точек — два 16-разрядных значения. Если для этой цели требуются два 16-разрядных значения, то для их представления служат два значения типа char. Первое символьное значение называется старшим суррогатом, а второе — младшим суррогатом. В формате UTF-32 каждая кодовая точка кодируется с помощью одного 32-разрядного значения. В структуре Char предоставляются все необходимые средства для преобразования из формата UTF-16 в формат UTF-32 и обратно.

В отношении методов структуры Char необходимо также отметить следующее: в используемых по умолчанию формах методов ToUpper() и ToLower() применяются текущие настройки культурной среды (языки и региональные стандарты), чтобы указать способ представления символов верхнего и нижнего регистра. На момент написания этой книги рекомендовалось явно указывать текущие настройки культурной среды, используя для этой цели параметр типа Culturelnfo во второй форме обоих упоминаемых методов. Класс Culturelnfo относится к пространству имен System.Globalization, а для указания текущей культурной среды следует передать свойство Culturelnfo.CurrentCulture соответствующему методу.

В структуре Char определены также следующие поля.

 

Public const char MaxValue

Public const char MinValue

 

Кроме того, в структуре Char реализуются следующие интерфейсы: IComparable, IComparable<char>, IConvertible и IEquatable<char>.

 

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

 

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

 

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

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

public static string ConvertFromUtf32(int utf32) - Преобразует кодовую точку уникода, представленную параметром utf32 в формате UTF-32, в символьную строку формата UTF-16 и возвращает полученный результат

pubic static int ConvertToUtf32 (char  highSurrogate, char  lowSurrogate) -  Преобразует старший и младший суррогаты, представленные параметрами highSurrogate  и lowSurrogate в формате UTF-16, в кодовую точку формата UTF-32 и возвращает полученный результат

Pubic static int

ConvertToUtf32(string s, int  index) -  Преобразует пару суррогатов формата UTF-16, доступных из символьной строки по индексу s [index] , в кодовую точку формата UTF-32 и возвращает полученный результат

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

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

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

public static double GetNumericValue(char c)  Возвращает числовое значение символа с, если он обозначает цифру. В противном случае возвращает -1

public static double GetNumericValue(string s, int  index) -  Возвращает числовое значение символа, доступ ного из строки по индексу s [index] , если он обозначает цифру. В противном случае возвращает -1

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

public static UnicodeCategory GetUnicodeCategory(char c) -  Возвращает значение из перечисления UnicodeCategory для символа с. Перечисление UnicodeCategory определено в пространстве имен System.Globalization и распределяет символы уникода по категориям

public static UnicodeCategory GetUnicodeCategory(string s,  int index) -  Возвращает значение из перечисления UnicodeCategory для символа, доступного из строки по индексу s [index] . Перечисление UnicodeCategory определено в пространстве имен System.Globalization и распределяет символы уникода по категориям

public static bool sControl(char c) -  Возвращает логическое значение true, если символ с является управляющим, иначе возвращает логическое значение false

public static bool IsControl(string s, int  index) -  Возвращает логическое значение true, если символ, доступный из строки по индексу s [index ], является управляющим, иначе возвращает логическое значение false

public static bool IsDigit(char c)  Возвращает логическое значение true, если символ с обозначает цифру, а иначе возвращает логическое значение false

public static bool IsDigit(string s, int index) -  Возвращает логическое значение true, если символ, доступный из строки по индексу s[index ],  обозначает цифру, а иначе возвращает логическое значение false

public static bool IsHighSurrogate(char c) -  Возвращает логическое значение true, если символьное значение с является действительным старшим суррогатом формата UTF-32, а иначе возвращает логическое значение false

public static bool IsHighSurrogate(string  s, int  index) -  Возвращает логическое значение true, если символьное значение, доступное из строки по индексу s [ index] , является действительным старшим суррогатом формата UTF-32, а иначе возвращает логическое значение false

public static bool IsLetter(char c) -  Возвращает логическое значение true, если символ с обозначает букву алфавита, а иначе возвращает логическое значение false

public static bool IsLetter(string s, int  index) -  Возвращает логическое значение true, если символ, доступный из строки по индексу s [index ], обозначает букву алфавита, а иначе возвращает логическое значение false

public static bool IsLetterOrDigit(char c) -  Возвращает логическое значение true, если символ с обозначает букву алфавита или цифру, а иначе возвращает логическое значение false

public static bool IsLetterOrDigit(string  s, int  index) -  Возвращает логическое значение true, если символ, доступный из строки по индексу s [ index ],  обозначает букву алфавита или цифру, а иначе возвращает логическое значение false

public static bool IsLower(char c) -  Возвращает логическое значение true, если символ с обозначает строчную букву алфавита, а иначе возвращает логическое значение false

public static bool IsLower(string s, int index) -  Возвращает логическое значение true, если символ, доступный из строки по индексу s [index ],  обозначает строчную букву алфавита, а иначе возвращает логическое значение false

public static bool IsLowSurrogate(char c) -  Возвращает логическое значение true, если символьное значение с является действительным младшим суррогатом формата UTF-32, а иначе возвращает логическое значение false

public static bool IsLowSurrogate(string s  , int  index) -  Возвращает логическое значение true, если символьное значение, доступное из строки по индексу s [ index] , является действительным младшим суррогатом формата UTF-32, а иначе возвращает логическое значение false

public static bool IsNumber(char c)  Возвращает логическое значение true, если символ с обозначает число (десятичное или шестнадцатеричное), а иначе возвращает логическое значение false

public static bool IsNumber(string s, int  index) -  Возвращает логическое значение true, если символ, доступный из строки по индексу s [ index] , обозначает число (десятичное или шестнадцатеричное), а иначе возвращает логическое значение false

public static bool IsPunctuation(char c) -  Возвращает логическое значение true, если символ с обозначает знак препинания, а иначе возвращает логическое значение false

public static bool IsPunctuation(string s  , int  index) -  Возвращает логическое значение true, если символ, доступный из строки по индексу s [index ],  обозначает знак препинания, а иначе возвращает логическое значение false

public static bool IsSeparator(char c) -  Возвращает логическое значение true, если символ с обозначает разделительный знак, а иначе возвращает логическое значение false

public static bool IsSeparator(string s,  int  index) -  Возвращает логическое значение true, если символ, доступный из строки по индексу s [ index ],  обозначает разделительный знак, а иначе возвращает логическое значение false

public static bool IsSurrogate(char c) -  Возвращает логическое значение true, если символьное значение с является суррогатным символом уникода, а иначе возвращает логическое значение false

public static bool IsSurrogate(string s, int index) -  Возвращает логическое значение true, если символьное значение, доступное из строки по индексу s[index] , является суррогатным символом уникода, а иначе возвращает логическое значение false

public static bool IsSurrogatePair(char  highSurrogate , char  lowSurrogate) -  Возвращает логическое значение true, если символьные значения highSurrogate и lowSurrogate образуют суррогатную пару

public static bool IsSymbol(char c) -  Возвращает логическое значение true, если символ с обозначает символический знак, например денежной единицы, а иначе возвращает логическое значение false

public static bool IsSymbol(string s, int  index) -  Возвращает логическое значение true, если символ, доступный из строки по индексу s[index ], обозначает символический знак, например денежной единицы, а иначе возвращает логическое значение false

public static bool IsUpper(char c) -  Возвращает логическое значение true, если символ с обозначает прописную букву алфавита, а иначе возвращает логическое значение false

public static bool IsUpper(string s, int  index) - Возвращает логическое значение true, если символ, доступный из строки по индексу s [ index ], обозначает прописную букву алфавита, а иначе возвращает логическое значение false

public static bool IsWhiteSpace(char c) -  Возвращает логическое значение true, если символ с обозначает пробел, табуляцию или пустую строку, а иначе возвращает логическое значение false

public static bool IsWhiteSpace(string s, int  index) -  Возвращает логическое значение true,  если символ, доступный из строки по индексу s[index] , обозначает пробел, табуляцию или пустую строку, а иначе возвращает логическое значение false

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

public static char ToLower(char c) -  Возвращает строчный эквивалент символа с,  если он обозначает прописную букву. В противном случае значение символа с не изменяется

public static char ToLower(char c, Culturelnfo  culture) -  Возвращает строчный эквивалент символа с,  если он обозначает прописную букву. В противном случае значение символа с не изменяется. Преобразование выполняется в соответствии с информацией о культурной среде, указываемой в параметре culture, где Culturelnfo — это класс, определенный в пространстве имен System.Globalization

public static char ToLowerlnvariant(char c) -  Возвращает строчный эквивалент символа с независимо от настроек культурной среды

public override string ToString() -  Возвращает строковое представление значения вызывающего объекта типа Char

public static string ToString(char  c) -  Возвращает строковое представление символьного значения с

public string ToString(IFormatProvider  provider) -  Возвращает строковое представление значения вызывающего объекта типа Char с учетом информации о культурной среде, указываемой в параметре provider

public static char ToUpper(char  c) -  Возвращает прописной эквивалент символа с,  если он обозначает строчную букву. В противном случае значение символа с не изменяется

public static char ToUpper(char i  c, Culturelnfo  culture) -  Возвращает прописной эквивалент символа с,  если он обозначает строчную букву. В противном случае значение символа с не изменяется. Преобразование выполняется в соответствии о информацией о культурной среде, указываемой в параметре culture, где Culturelnfo — это класс, определенный в пространстве имен System.Globalization

public static char ToUpperlnvariant(char c) -  Возвращает прописной эквивалент символа с независимо от настроек культурной среды

public static bool TryParse(string s, out char result) -  Возвращает прописной эквивалент символа с независимо от настроек культурной среды Предпринимает попытку преобразовать символ из строки s в его эквивалентное значение типа char. При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true. Если же строка s состоит из нескольких символов, то возвращается логическое значение false, в отличие от метода Parse (), который генерирует исключение при неудачном исходе преобразования

 

Ниже приведен пример программы, в которой демонстрируется применение нескольких методов, определенных в структуре Char.

 

// Продемонстрировать применение нескольких методов,

// определенных в структуре Char.

using System;

using System.Globalization;

class CharDemo {

static void Main() {

string str = "Это простой тест. $23";

int i;

for(i=0; i < str.Length; i++) {

Console.Write(str[i] + " является");

if(Char.IsDigit(str[i]))

Console.Write(" цифрой");

if(Char.IsLetter(str[i]))

Console.Write(" буквой");

if(Char.IsLower(str [i]))

Console.Write(" строчной");

if(Char.IsUpper(str[i]))

Console.Write(" прописной");

if(Char.IsSymbol(str[i]))

Console.Write(" символическим знаком");

if(Char.IsSeparator (str[i]))

Console.Write(" разделительным");

if(Char.IsWhiteSpace (str [i]))

Console.Write(" пробелом");

if(Char.IsPunctuation(str [i]))

Console.Write(" знаком препинания");

Console.WriteLine();

}

Console.WriteLine("Исходная строка: " + str);


Дата добавления: 2019-02-12; просмотров: 377; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!