Template:Rndpad
80561.450
The rounding routine Template:Rndpad can round up to 85 billion as 11-digit format, with decimals padded by trailing zeroes, when the round setting > -11, but can display scientific notation above 85 billion (8.5E+10) for any number of digits.
Usage
change- {{rndpad|7.58|1}} → 7.6
- {{rndpad|7001.58|0}} → 7002
- {{rndpad|9730070681.45003|-3}} → 9730071000
- {{rndpad|9730070681.45003|4}} → 9730070681.4500
- {{rndpad|9000000000.40|0}} → 9000000000
- {{rndpad|90000000000.40|0}} → 9.0000000000×1010
- {{rndpad|70000000000.40|0}} → 70000000000
- {{rndpad|678912|-5}} → 700000
Detailed examples
change- Examples of rounding to each of 6-12 digits:
- {{rndpad|90711.45003| -4 }} → 90000
- {{rndpad|79730000006.40|0}} → 79730000006
- {{rndpad|999999| -1}} → 1000000
- {{rndpad|84999000000.3| 0}} → 84999000000
- {{rndpad|85000000000.3| 0}} → 8.5000000000×1010
- {{rndpad|84873000000.3| -8}} → 84900000000
- {{rndpad|80561.45003| -5 }} → 100000
- {{rndpad|80561.45003| -4 }} → 80000
- {{rndpad|80561.45003| -3 }} → 81000
- {{rndpad|80561.45003| -2 }} → 80600
- {{rndpad|80561.45003| -1 }} → 80560
- {{rndpad|80561.45003| 0 }} → 80561
- {{rndpad|80561.45003| 1 }} → 80561.5
- {{rndpad|80561.45003| 2 }} → 80561.45
- {{rndpad|80561.45003| 3 }} → 80561.450
- {{rndpad|80561.45003| 4 }} → 80561.4500
- {{rndpad|80561.45003| 5 }} → 80561.45003
- {{rndpad|80561.45003| 6 }} → 80561.450030
Technical issues
changeThe Template:Rndpad avoids subtemplates when rounding to whole integer amounts, and uses only one subtemplate, {{rnd/-}}, when rounding decimal portions of numbers below 85 billion. In those cases, the internal markup coding is nested only 3 levels deep, of nested-if expressions. However, for numbers over 85 billion, up to 8 subtemplates are invoked, and the nesting level can be more than 12 levels deep. Inside a single page, invoking {{rndpad}} uses only 1 level of nesting, so an if-expression could be nested 39 levels deep, and then invoke rndpad as the 40th-level of nesting. However, inside an infobox, the depth-limit message might be announced as "Expansion depth limit exceeded" at 41 levels.
Internally, {Rndpad} uses math function floor(x) or "x \ n" to truncate decimal digits; however, to bypass a system-math bug, the template adds 1E-9 (x+0.000000001) to the amount before using floor(x) or "x mod n". If that math bug is fixed, the result should still calculate correctly.