Таблица явных числовых преобразований (справочник по C#)

Обновлен: Ноябрь 2007

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

Из

В

sbyte

byte, ushort, uint, ulong или char

byte

Sbyte или char

short

sbyte, byte, ushort, uint, ulong или char

ushort

sbyte, byte, short или char

int

sbyte, byte, short, ushort, uint, ulongили char

uint

sbyte, byte, short, ushort, int или char

long

sbyte, byte, short, ushort, int, uint, ulong или char

ulong

sbyte, byte, short, ushort, int, uint, long или char

char

sbyte, byte или short

float

sbyte, byte, short, ushort, int, uint, long, ulong, char,или decimal

double

sbyte, byte, short, ushort, int, uint, long, ulong, char, floatили decimal

decimal

sbyte, byte, short, ushort, int, uint, long, ulong, char, float или double

Заметки

  • Явное числовое преобразование может привести к потере точности или вызвать исключения.

  • Во время преобразования значения decimal в целочисленный тип оно округляется в сторону нуля до ближайшего целого значения. Если полученное целое значение выходит за допустимые пределы значений конечного типа, возникает исключение OverflowException.

  • Во время преобразования значения double или float в целочисленный тип оно усекается. Если полученное целое значение выходит за допустимые пределы конечного значения, результат зависит от контекста проверки переполнения. В контексте с проверкой возникает исключение OverflowException, а в контексте без проверки результатом является неуказанное значение конечного типа.

  • При преобразовании double в float, значение double округляется до ближайшего значения float. Если значение double слишком мало или слишком велико для конечного типа, результатом является нуль или бесконечность.

  • При преобразовании float или double в decimal исходное значение преобразуется в представление decimal и округляется до ближайшего числа после 28-го десятичного знака, если это необходимо. В зависимости от исходного значения может быть получен один из следующих результатов:

    • Если исходное значение слишком мало для представления в качестве decimal, результатом является нуль.

    • Если исходное значение не является числом, равно бесконечности или слишком велико для представления в качестве decimal, возникает исключение OverflowException.

  • При преобразовании decimal в float или double, значение decimal округляется до ближайшего значения double или float.

Дополнительную информацию о явном преобразовании см. в разделе "6.2 Явные операции в спецификации языка C#". Дополнительные сведения о доступе к спецификации см. в разделе Спецификация языка C#.

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Таблица целых типов (Справочник по C#)

Таблица встроенных типов (Справочник по C#)

Таблица неявных числовых преобразований (Справочник по C#)

Другие ресурсы

Справочник по C#