​​Явное приведении значимых типов в C#



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



🔸 Целочисленное к целочисленному - урезание ведущих битов;



🔸 Decimal, float и double к целочисленному - обрезание дробной части и ведущих битов;



🔸 Double к float - округление или Infinity в случае переполнения;



🔸 Float и double к decimal - округление;



🔸 Decimal к float или double - потеря точности;



Также не стоит забывать и об операторе checked, который выбрасывает исключение в случае переполнения.



Подробнее с правилами явного приведения вы сможете ознакомиться уже в документации.



💬 На мой взгляд, необходимости заучивать все эти правила нет, однако, помнить - безусловно стоит. Если у вас ещё остались вопросы по преобразованиям или числам с плавающей точкой, то я настоятельно рекомендую вам ознакомиться со следующей темой самостоятельно - Difference between decimal, float and double in .NET?.



#data_types