Я пытаюсь понять разницу между некоторыми типами данных и преобразованием.
public static void ExplicitTypeConversion2()
{
long longValue=long.MaxValue;
float floatValue = float.MaxValue;
int integerValue = (int) longValue;
int integerValue2 = (int)floatValue;
Console.WriteLine(integerValue);
Console.WriteLine(integerValue2);
}
Когда я запускаю этот блок кода, он выводит:
-1
-2147483648
Я знаю, что если значение, которое вы хотите назначить целому числу, больше, чем это целое число может сохранить, оно возвращает минимальное значение integer (-2147483648).
Насколько я знаю, long.MaxValue
намного больше максимального значения целого числа, но если я отбрасываю long.MaxValue
в int
, он возвращает -1.
В чем разница этих двух кастингов? Я думаю, что первый тоже предположил бы вернуть -2147483648 вместо -1.