This template produces an expression for the value of a given expression, rounded down to an integer. If the value is in the range of integer-type numbers, the resulting expression is of type integer.
Thus, when applying
#expr, if the value is in the range of integer-type numbers the exact result is produced. The reason for not applying
#expr in this template is:
- for integer-type numbers: in subsequent use in another expression the value would be rounded to float
- for floats: they would be rounded to 14 digits
Advantage compared with the function floor:
- for integer-type numbers with an absolute value between 2^53 and 2^63 the function rounds to float (not necessarily downward), while the template gives the integer-type expression for the exact result