Почему С# Math.Floor() возвращает Double вместо Int
Возможный дубликат:
Почему Math.Floor(Double) возвращает значение типа Double?
Почему С# Math.Floor()
возвращает double
вместо int
В Документах MSDN:
Возвращает наибольшее целое число, меньшее или равное указанному числу с плавающей запятой с двойной точностью
он говорит, что возвращает целое число. Его нормально возвращать double
, я всегда могу отнести его к int
, но его просто довольно странно, не так ли?
Ответы
Ответ 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 также должен быть двойным, или много потенциального вывода не будет вписываться в выходную переменную.
В математических терминах область и диапазон функции должны иметь одинаковый размер.