Подтвердить что ты не робот

Почему С# Math.Floor() возвращает Double вместо Int

Возможный дубликат:
Почему Math.Floor(Double) возвращает значение типа Double?

Почему С# Math.Floor() возвращает double вместо int

В Документах MSDN:

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

он говорит, что возвращает целое число. Его нормально возвращать double, я всегда могу отнести его к int, но его просто довольно странно, не так ли?

4b9b3361

Ответ 1

Не совсем, учитывая, что a double может быть гораздо более высокой величиной, чем int. Вы не хотели бы переполнять int большим значением, которое может быть двойным.

Просто чтобы показать вам, что я имею в виду:

Double.MaxValue = 1.7976931348623157E + 308

Integer.MaxValue = 2,147,483,647

Таким образом, у вас может быть двойной, который равен 3 000 000 000.50, и выровняйте его, что переполнит максимальное значение int.

Ответ 2

Поскольку INPUT является двойным, OUTPUT также должен быть двойным, или много потенциального вывода не будет вписываться в выходную переменную.

В математических терминах область и диапазон функции должны иметь одинаковый размер.