Template:Rndpad

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

80561.450

Template documentation[view] [edit] [history] [purge]

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 source]

{{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 source]

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[change source]

The 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 mod 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.

Related pages[change source]

  • {{rnd|amount|n}} - round amount, allow scientific notation at 8.0E+5
  • {{rnd/-|amount|n}} - round a decimal padded with trailing zeroes