From APL Wiki
Jump to navigation Jump to search

Floor () is a monadic scalar function that gives the floor of a real number, that is, the greatest integer tolerantly less than or equal to the given value. This operation is also known as integral part, entier, and round down. Floor shares the glyph with the dyadic arithmetic function Minimum. Traditional mathematics derives its notation and name for floor from APL.


Floor rounds down the given numbers to the nearest integers.

      2 2.8 ¯2 ¯2.8
2 2 ¯2 ¯3

Rounding to the nearest integer (rounding up on half) can be achieved by adding 0.5 before applying Floor.

      0.5+2 2.3 2.5 2.8
2 2 3 3

Integral quotient of division can be found with division followed by Floor.

      10 20 30÷3
3 6 10


The floor of any real number is an integer.

Floor is affected by comparison tolerance. If the given number is tolerantly equal to its ceiling, it is rounded to that number instead.

      v1+0.6×⎕CTׯ2 ¯1 0
0.999999999999988 0.999999999999994 1
0 1 1

Complex floor

Main article: Complex Floor

Eugene McDonnell designed the domain extension of Floor to complex numbers.[1] Complex floor maps every complex number to a Gaussian integer, a complex number whose real and imaginary parts are integers. It has an important property that the magnitude of difference between any complex number Z and its floor is less than 1. This extension is currently implemented in Dyalog APL, J, and NARS2000, and is internally used to implement complex ceiling, residue, and GCD.

      v1.8J2.5 2.2J2.5 2.5J2.2 2.5J1.8
2J2 2J2 2J2 2J2
1 1 1 1
Works in: Dyalog APL

External links



  1. McDonnell, Eugene. "Complex Floor".
APL built-ins [edit]
Primitive functions
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare Root
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
Structural ShapeReshapeTallyDepthRavelEnlistTableCatenateReverseRotateTransposeRazeMixSplitEncloseNestCut (K)PairLinkPartitioned EnclosePartition
Selection FirstPickTakeDropUniqueIdentitySelectReplicateExpandSet functions (IntersectionUnionWithout) ∙ Bracket indexingIndex
Selector Index generatorGradeIndex OfInterval IndexIndicesDeal
Computational MatchNot MatchMembershipFindNub SieveEncodeDecodeMatrix InverseMatrix DivideFormatExecuteMaterialiseRange
Primitive operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-beamSpawnFunction axis
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Atop, Over) ∙ Inner ProductPowerAtUnderRankDepthVariantStencilCut (J)
Quad names
Arrays Index originMigration levelAtomic vector
Functions Case convertUnicode convert
Operators SearchReplace