В чем разница между приведением long.MaxValue к int и приведением float.MaxValue к int?
Я пытаюсь понять разницу между некоторыми типами данных и преобразования.
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
Я знаю, что если значение, которое вы хотите присвоить целому числу, больше, чем это целое число может сохранить, он возвращает минимальное значение целого числа (-2147483648).
Насколько я знаю,long.MaxValue
намного больше, чем максимальное значение целого числа, но если я приведуlong.MaxValue
вint
, он возвращает -1.
В чем разница этих двух кастингов? Я думаю, что первый также предполагает возвращение -2147483648 вместо -1.