This is an old revision of the document!
These functions round fixed-point numbers to one of the two nearby integers.
There are four rounding modes:
trunc
– zeroes the fractional part of the numberfloor
– rounds the number downceil
– round the number upround
– rounds the number to the closest integerExample rounding table:
x | round(x) | floor(x) | ceil(x) | trunc(x) |
---|---|---|---|---|
1.3 | 1 | 1 | 2 | 1 |
1.8 | 2 | 1 | 2 | 1 |
1.5 | 2 | 1 | 2 | 1 |
-1.3 | -1 | -2 | -1 | -1 |
-1.8 | -2 | -2 | -1 | -1 |
-1.5 | -1 | -2 | -1 | -1 |
Every rounding mode is available as two functions. The ones with the i
prefix in the name return an integer, while the ones without return a fixed-point number:
Mode | as fixed | as int |
---|---|---|
floor | floor() | ifloor() |
ceil | ceil() | iceil() |
round | round() | iround() |
trunc | trunc() | itrunc() |
Example of the difference:
floor(2.3) == 2.0;
ifloor(2.3) == 2;
So the full function list is as follows:
fixed floor(fixed x)
fixed ceil(fixed x)
fixed round(fixed x)
fixed trunc(fixed x)
int ifloor(fixed x)
int iceil(fixed x)
int iround(fixed x)
int itrunc(fixed x)