Как объясняется здесь, Math.Ceiling возвращает: "Наименьшее целочисленное значение, которое больше или равно". Но позже он говорит: "Обратите внимание, что этот метод возвращает тип Double вместо целочисленного типа". Мне просто интересно, почему?
Почему потолок в .NET возвращает Double, а не целое число?
Ответ 1
Поскольку double имеет гораздо большее максимальное значение, чем поддерживает целое число.
Запрос на потолок на double
, который имеет значение больше Int32.MaxValue
(или даже Int64.MaxValue
) было бы невозможно, если бы оно вернуло целое число.
Ответ 2
Я думаю, что цель этой "заметки" состоит в том, чтобы убедиться, что люди не сбиты с толку фразой "интегральное значение", полагая, что возвращаемое значение обязательно имеет целочисленный тип. Как указывают другие ответы, не все интегральные значения могут храниться в типах integer-y.
Ответ 3
Диапазон наибольшего целочисленного типа по-прежнему намного меньше диапазона Double. Поэтому у многих действительных двойных значений не будет потолка().