Learn how to use the floor function in Notion formulas.

The floor() function returns the largest integer that is less than or equal to its argument.


Code language: JavaScript (javascript)

In other words, floor() rounds a non-whole number to the next smallest integer. When used on an integer, it will return that integer.

floor(4.2) /* Output: 4 */

3.845.floor() /* Output: 3 */

floor(4) /* Output: 4 */
Code language: JavaScript (javascript)

It’s worth noting that floor() rounds “downward towards negative infinity”, while its counterpart, ceil, rounds “upward towards positive infinity”

Rounding Functions - ceil, floor, round, trunc
Note: This graphic shows JavaScript rounding functions. Notion formulas don’t have a trunc() function, but you can create one using ternary syntax (shown below).

When a negative value is passed as floor()‘s argument, you’ll still get a smaller value.

floor(-3.7) /* Output: -4 */
Code language: JavaScript (javascript)

floor() does not round “towards zero”, and ceil does not round “away from zero”.

In JavaScript, the Math.trunc function rounds “towards” zero. It simply removes all decimal values from a non-whole number – e.g. Math.trunc(3.7) == 3 and Math.trunc(-3.7) == -3.

Notion does not have a trunc() function, but you can create one using an if-then statement:

/* Assume a number property exists called Num */
prop("Num") >= 0 ? prop("Num").floor() : prop("Num").ceil()
Code language: JavaScript (javascript)

As stated above, Notion does not currently provide a trunc() function.

The example database below provides a working example of a trunc() polyfill (a.k.a. custom code that replicates the functionality of a missing function), which uses both floor() and ceil.

Floor and ceiling values are also provided for reference.

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team
/* Written with ternary operator (? and :) */
prop("Num") >= 0 
	? floor(prop("Num")) 
	: ceil(prop("Num"))

/* Written with if() */
	prop("Num") >= 0,
Code language: JavaScript (javascript)

A proper trunc() function (which does not exist in Notion) would simply chop all of the digits after the decimal off of a number and return the integer.

To create an effective polyfill for this function, we must first determine if our input number is positive or negative. We do this with prop("Num") >= 0, though the same could be accomplished with the sign function: sign(prop("Num")) == 1

If the input number is positive, we pass it as an argument to floor().

If it is negative, we must instead pass it as an argument to ceil.

You can check this in the example table above by comparing the output in the Trunc column to that of the Floor and Ceil columns.

Other formula components used in this example:

if – Thomas Frank
ceil – Thomas Frank
largerEq – Thomas Frank
About the Author

My name is Thomas Frank, and I'm a Notion-certified writer, YouTuber, and template creator. I've been using Notion since 2018 to organize my personal life and to run my business and YouTube channel. In addition to this formula reference, I've created a free Notion course for beginners and several productivity-focused Notion templates. If you'd like to connect, follow me on Twitter.

🤔 Have an UB Question?

Fill out the form below and I’ll answer as soon as I can! ~Thomas

🤔 Have a Question?

Fill out the form below and I’ll answer as soon as I can! ~Thomas