Введение

Ближайшие целые числа к числу

В математике функция "пол" (или функция наибольшего целого числа) — это функция, которая принимает в качестве аргумента вещественное число x и возвращает наибольшее целое число, меньшее или равное x, обозначаемое ⌊x⌋ или floor(x). Аналогично, функция "потолок" отображает x в наименьшее целое число, большее или равное x, обозначаемое ⌈x⌉ или ceil(x). Например, для функции "пол": ⌊2.2⌋ = 2, ⌊-3.7⌋ = -4, а для функции "потолок": ⌈2.2⌉ = 3, ⌈-3.7⌉ = -3.
Исторически, ⌊x⌋ называли и до сих пор называют целой частью x, часто обозначаемой [x] (а также различными другими обозначениями). Однако тот же термин, "целая часть", также используется для усечения в сторону нуля, что отличается от функции "пол" для отрицательных чисел. Для целого числа n, ⌊n⌋ = n и ⌈n⌉ = n.
Хотя графики floor(x+1) и ceil(x) выглядят идентично, они не равны, когда x является целым числом. Например, при x = 2.0001, floor(x+1) = 3 и ceil(x) = 3. Однако, если x = 2, то floor(x) = 2, а ceil(x) = 2.

+Примеры
x | Пол ⌊x⌋ | Потолок ⌈x⌉ | Дробная часть {x}
---|---|---|---
2 | 2 | 2 | 0
2.0001 | 2 | 3 | 0.0001
2.4 | 2 | 3 | 0.4
2.9 | 2 | 3 | 0.9
2.999 | 2 | 3 | 0.999
−2.7 | −3 | −2 | 0.3
−2 | −2 | −2 | 0

Факторы факториалов

Пусть n — положительное целое число, а p — положительное простое число. Показатель наибольшей степени p, делящей n!, задается версией формулы Лежандра, где — это представление числа n в системе счисления по основанию p. Это конечная сумма, поскольку целые части равны нулю, когда pk > n.

Последовательность Битти

Последовательность Битти демонстрирует, как каждое положительное иррациональное число порождает разбиение натуральных чисел на две последовательности с помощью функции взятия целой части.

Компьютерные реализации

В большинстве языков программирования самый простой способ преобразования числа с плавающей точкой в целое число – это не округление в сторону пола или потолка, а усечение. Это связано с историческими причинами: первые машины использовали дополнительный код единицы, и усечение было проще реализовать (округление в сторону пола проще в дополнительном коде двойки). FORTRAN был определён таким образом, чтобы требовать такое поведение, и поэтому почти все процессоры реализуют преобразование именно так. Некоторые считают это неудачным историческим конструкторским решением, которое привело к ошибкам при обработке отрицательных смещений и графики в отрицательной области координат. Арифметический сдвиг знакового целого числа вправо на *n* позиций эквивалентен делению на 2 в степени *n*. Деление часто записывается как сдвиг вправо, не для оптимизации, как можно предположить, а потому что требуется округление отрицательных результатов в сторону пола. Считая такие сдвиги "преждевременной оптимизацией" и заменяя их делением, можно нарушить работу программного обеспечения. Многие языки программирования (включая C, C++, C#, Java, PHP, R и Python) предоставляют стандартные функции для округления в сторону пола и потолка, обычно называемые floor и ceil, или реже ceiling. Язык APL использует ⌊x для округления в сторону пола. Язык программирования J, являющийся развитием APL и предназначенный для использования стандартных символов клавиатуры, использует <. для округления в сторону пола и >. для округления в сторону потолка. ALGOL использует entier для округления в сторону пола. В Microsoft Excel функция INT округляет вниз, а не к нулю, в то время как FLOOR округляет к нулю, что противоположно тому, что делают "int" и "floor" в других языках. Начиная с 2010 года, FLOOR выдаёт ошибку, если число отрицательное. Файловый формат OpenDocument, используемый OpenOffice.org, LibreOffice и другими, использует INT и FLOOR для округления в сторону пола, а FLOOR имеет третий аргумент для воспроизведения более раннего поведения Excel.