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

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

Дополнительные сведения о преобразованиях см. в разделе Приведение и преобразование типов (Руководство по программированию на C#).

Исходный тип

Целевой тип

sbyte

byte, ushort, uint, ulong или char

byte

Sbyte или char

short

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

ushort

sbyte, byte, short или char

Целочисленное значение.

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.

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

См. также

Ссылки

Приведение и преобразование типов (Руководство по программированию на C#)

Оператор () (Справочник по C#)

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

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

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

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

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

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

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