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.5 | 2 | 1 | 2 | 1 |
| 1.8 | 2 | 1 | 2 | 1 |
| -1.3 | -1 | -2 | -1 | -1 |
| -1.5 | -1 | -2 | -1 | -1 |
| -1.8 | -2 | -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)