Выполняя явные преобразования числовых типов мы можем столкнуться с ситуацией, при которой исходное значение не может корректно отобразиться на требуемый нам тип. В таком случае дальнейшие выполнение приведения осуществляется по следующим правилам:
🔸 Целочисленное к целочисленному - урезание ведущих битов;
🔸
Decimal, float и double к целочисленному - обрезание дробной части и ведущих битов;🔸
Double к float - округление или Infinity в случае переполнения;🔸
Float и double к decimal - округление;🔸
Decimal к float или double - потеря точности;Также не стоит забывать и об операторе
checked, который выбрасывает исключение в случае переполнения.Подробнее с правилами явного приведения вы сможете ознакомиться уже в документации.
💬 На мой взгляд, необходимости заучивать все эти правила нет, однако, помнить - безусловно стоит. Если у вас ещё остались вопросы по преобразованиям или числам с плавающей точкой, то я настоятельно рекомендую вам ознакомиться со следующей темой самостоятельно - Difference between decimal, float and double in .NET?.
#data_types