Это очень интересный вопрос! Поскольку для значения с плавающей запятой требуется несколько бит для хранения показателя степени (= bits_for_exponent
), любое число с плавающей запятой, большее, чем 2**(float_size - bits_for_exponent)
, всегда будет целым значением! С другой стороны, число с плавающей точкой с отрицательным показателем даст один из 1
, 0
или -1
. Это делает обсуждение целочисленного диапазона против плавающего диапазона moot, потому что эти функции будут просто возвращать исходное число всякий раз, когда число находится вне диапазона целочисленного типа. Функции python являются обертками для функции C
, так что это действительно недостаток функций C
, в которых они должны были вернуть целое число и вынудить программиста выполнить проверку диапазона / NaN
/ Inf
перед вызовом CEIL / этаж.
Таким образом, логический ответ - единственный раз, когда эти функции полезны, они возвращают значение в целочисленном диапазоне, и поэтому тот факт, что они возвращают число с плавающей запятой, является ошибкой , и вы очень умны для реализации этого!