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

Почему потолок в .NET возвращает Double, а не целое число?

Как объясняется здесь, Math.Ceiling возвращает: "Наименьшее целочисленное значение, которое больше или равно". Но позже он говорит: "Обратите внимание, что этот метод возвращает тип Double вместо целочисленного типа". Мне просто интересно, почему?

4b9b3361

Ответ 1

Поскольку double имеет гораздо большее максимальное значение, чем поддерживает целое число.

Запрос на потолок на double, который имеет значение больше Int32.MaxValue (или даже Int64.MaxValue) было бы невозможно, если бы оно вернуло целое число.

Ответ 2

Я думаю, что цель этой "заметки" состоит в том, чтобы убедиться, что люди не сбиты с толку фразой "интегральное значение", полагая, что возвращаемое значение обязательно имеет целочисленный тип. Как указывают другие ответы, не все интегральные значения могут храниться в типах integer-y.

Ответ 3

Диапазон наибольшего целочисленного типа по-прежнему намного меньше диапазона Double. Поэтому у многих действительных двойных значений не будет потолка().