This is an old revision of the document!
ACSUtils provides a full set of functions to round fixed-point numbers to 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 between i and non-i functions:
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)