Форматирование численных типов




Встроенные базовые типы

C# предоставляет стандартный набор встроенных типов для представления целых чисел, вещественных чисел с плавающей запятой, логических выражений, текстовых символов, десятичных значений и других.

В следующей таблице перечислены базовые типы, предоставляемые в.NET Framework, кратко описывается каждый тип и указывается соответствующий тип в C#.

Описание .Net C#
8-разрядное целое число без знака. Byte byte
8-разрядное целое число со знаком. SByte sbyte
16-разрядное целое число со знаком Int16 short
32-разрядное целое число со знаком Int32 int
64-разрядное целое число со знаком Int64 long
16-разрядное целое число без знака UInt16 ushort
32-разрядное целое число без знака UInt32 uint
64-разрядное целое число без знака UInt64 ulong
32-разрядное с плавающей точкой с обычной точностью Single float
64-разрядное с плавающей точкой с двойной точностью Double double
Логическое значение (true или false) Boolean bool
Символ Юникода (16-разрядный) Char char
128-разрядное десятичное целое Decimal decimal
Корень иерархии объектов Object object
Строка символов Юникода фиксированной длины String string

В дополнение к базовым типам данных пространство имен System содержит более 100 классов — от классов для обработки исключений до классов, которые работают с основными механизмами среды выполнения, такими как домены приложений и сборщик мусора.

Типы целых чисел

В таблице представлены размеры и диапазоны целых типов, которые составляют подмножество простых типов.

Тип Диапазон Размер
sbyte От -128 до 127 8-разрядное целое число со знаком
byte От 0 до 255 8-разрядное целое число без знака
char от U+0000 до U+ffff 16-разрядный символ Юникода
short От -32 768 до 32 767 16-разрядное целое число со знаком
ushort От 0 до 65 535 16-разрядное целое число без знака
int От -2 147 483 648 до 2 147 483 647 32-разрядное целое число со знаком
uint От 0 до 4 294 967 295 32-разрядное целое число без знака
long От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 64-разрядное целое число со знаком
ulong От 0 до 18 446 744 073 709 551 615 64-разрядное целое число без знака

Типы чисел с плавающей запятой

В таблице представлены приблизительные диапазоны типов с плавающей запятой.

Тип Приблизительный диапазон Точность
float От ±1,5e−45 до ±3,4e38 7 знаков
double От ±5,0e−324 до ±1,7e308 15-16 знаков

Значения типов по умолчанию

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

Помните, что в C# не допускается использование неинициализированных переменных.

Тип Значение по умолчанию
bool false
byte  
char '\0'
decimal 0,0M
double 0,0D
float 0,0F
int  
long 0L
sbyte  
short  
uint  
ulong  
ushort  

 

Преобразования типов

Все вычисления происходят с использованием типа double. Другие типы чисел могут применяться для уменьшения занимаемой памяти. При их использовании перед вычислением они преобразуются в тип double. Различают преобразования:

· Неявные преобразования используются для совместимых типов. Значения источника полностью отображаются приемником. Например, при преобразовании int в double (int – подмножество double). Такое преобразование выполняется автоматически, его не надо заказывать.

· Явные преобразования используются для несовместимых типов. Например, при преобразовании double в int (int – подмножество double). Значения источника не полностью отображаются приемником. Если типы несовместимы, но ошибка допустима, то преобразование возможно, но его нужно явно заказать: для этого перед преобразуемым выражением добавляется префикс идентификации конечного типа (в круглых скобках). Например,

double db=12.94;

int i;

i = (int) db;

Форматирование численных типов

Все числа выводятся в консоль в виде строк символов. Потому перед выводом применяется форматирование. Запись формата:

(m:<Буква>d).

Спецификаторы: m – число позиций всего, d - число позиций дробной части (мантиссы для чисел со степенью).

Если спецификаторы пропускаются, то используются их значения по умолчанию. Предусмотрены 9 форматов.

Формат   Тип числа Пример d по умолчанию
Общий G   m:G По факту
Фикс. Точка F   m:Fd  
С возвратом R   m:Rd По факту
Число N   m:Nd  
Со степенью E   m:Ed  
Десятичное D Целое m:D  
Денежный C   m:Cd  
Проценты P   0:Pd  
  X Целое / бз m:X  

Если целая часть не умещается в заданных позициях, то осуществляется расширение целой части.

Если дробная часть не умещается в заданных позициях, то в форматах G и R осуществляется расширение дробной части. В остальных используется ее округление.

В денежном формате C добавляется символ p. Если число целое, то дробные разряды заполняются нулями. Целая часть отображается с разделением на денежные группы по три символа. Если d пропускается, по умолчанию d=2.

В процентном формате P число умножается на 100, добавляется символ %. Целая часть отображается с разделеним на денежные группы по три символа.

Символы char

Тип Char – это один символ в коде unicod UTF-16. Символ помещается в одиночные кавычки. Синтаксис объявления:

Char Имя = ‘ Символ ’;

Символ может быть:

· Буква кодировки ANSI.

· Escape-знак. Применяется для ввода управляющих символов кодировки ANSI. Например, \n (новая строка), \t (табуляция).

· Символ unicod - \u +xxxx, где хххх – 16 ричные симолы.

char МойСимвол = ‘A ‘; - символ A.

char ЯпонСимвол = ‘\u30ad ‘; - символ из японской азбуки Катакана.

Определены следующие Escape-последовательности строк

Escape-последовательность Имя символа Кодировка Юникода
\' Одинарная кавычка 0x0027
\" Двойная кавычка 0x0022
\\ Обратная косая черта 0x005C
\0 Null 0x0000
\a ALERT 0x0007
\b BACKSPACE 0x0008
\n Новая строка 0x000A
\r Возврат каретки 0x000D
\t Горизонтальная табуляция 0x0009
\u Escape-последовательность unicod \u0041 = ‘A’
\v Вертикальная табуляция 0x000B
\x Escape-последовательность unicod аналогична "\u", за исключением строк с переменной длиной. \x0041 = ‘A’

Строки string

Строка является объектом типа String, значением которого является текст. Тип данных string (все буквы строчные) является псевдонимом класса String. Внутренне объект типа String хранится в коллекции объектов Char, каждый из которых представляет один символ Юникода в UTF-16.

Строка C# представляет собой группу одного или нескольких знаков, заключенных в двойные кавычки и объявленных с помощью ключевого слова string,

string greeting = "Hello, World!";

Строковые объекты являются неизменяемыми: после создания их нельзя изменить.

Перечисления

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

Например, если в программе ведется работа с днями недели, может потребоваться создать новый тип с именем DayOfWeek. Затем можно объявить новую переменную типа DayOfWeek, а затем присвоить ей значение. Использование этого типа данных способствует повышению удобочитаемости кода, кроме того, снижается вероятность назначения переменной недопустимого или неожиданного значения.

public enum DayOfWeek

{

Sunday = 0,

Monday = 1,

Tuesday = 2,

Wednesday = 3,

Thursday = 4,

Friday = 5,

Saturday = 6

}

 

class Program

{

static void Main()

{

DayOfWeek day = DayOfWeek.Monday;

int i = (int) DayOfWeek.Monday;

 

System.Console.WriteLine(day); // displays Monday

System.Console.WriteLine(i); // displays 1

}

}

Тип DateTime

Значения времени измеряются в 100-наносекундных единицах, называемых тактами, и точная дата представляется числом тактов с 00:00 1 января 0001 года н. э. по календарю GregorianCalendar. Например, значение тактов, равное 31241376000000000L, представляет пятницу 1 января 0100 года 00:00:00. Значение DateTime всегда выражается в контексте явно определенного или заданного по умолчанию календаря.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: