You may be looking for the "floor" primitive? There's no corresponding "ceiling" primitive but you can take the negation of the floor of the negation:
select value down:(floor value) up:(-floor-value) from .1*range 21 +-------+------+----+ | value | down | up | +-------+------+----+ | 0 | 0 | 0 | | 0.1 | 0 | 1 | | 0.2 | 0 | 1 | | 0.3 | 0 | 1 | | 0.4 | 0 | 1 | | 0.5 | 0 | 1 | | 0.6 | 0 | 1 | | 0.7 | 0 | 1 | | 0.8 | 0 | 1 | | 0.9 | 0 | 1 | | 1 | 1 | 1 | | 1.1 | 1 | 2 | | 1.2 | 1 | 2 | | 1.3 | 1 | 2 | | 1.4 | 1 | 2 | | 1.5 | 1 | 2 | | 1.6 | 1 | 2 | | 1.7 | 1 | 2 | | 1.8 | 1 | 2 | | 1.9 | 1 | 2 | | 2 | 2 | 2 | +-------+------+----+