Таблица явных числовых преобразований (справочник по C#)
Обновлен: Ноябрь 2007
Явное числовое преобразование используется для преобразования любого числового типа в любой другой числовой тип, для которого отсутствует неявное преобразование, с помощью выражения приведения. В следующей таблице приведено описание этих преобразований.
Из |
В |
---|---|
byte, ushort, uint, ulong или char |
|
Sbyte или char |
|
sbyte, byte, ushort, uint, ulong или char |
|
sbyte, byte, short или char |
|
sbyte, byte, short, ushort, uint, ulongили char |
|
sbyte, byte, short, ushort, int или char |
|
sbyte, byte, short, ushort, int, uint, ulong или char |
|
sbyte, byte, short, ushort, int, uint, long или char |
|
sbyte, byte или short |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char,или decimal |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char, floatили 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#)