В чем разница между приведением 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.

Ответы на вопрос(3)

Ваш ответ на вопрос