Template:Round0
This template produces an expression for the value of a given expression, rounded 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
Examples:
{{round0|123.45}}
→ ((123.45)round0){{round0|10/7}}
→ ((10/7)round0){{round0|123.45e20}}
→ (123.45e20)
Advantages compared with the operator round with second argument 0:
- that operator gives wrong results for odd numbers between 2^52 and 2^53, even though the exact results are representable as float
- for integer-type numbers with an absolute value between 2^53 and 2^63 the operator rounds to float, while the template gives the integer-type expression for the exact result