Difference between revisions of "Module:Roman/doc"
Jump to navigation
Jump to search
blackwiki>Andy M. Wang |
blackwiki>Andy M. Wang (expanded) |
||
| Line 1: | Line 1: | ||
{{module rating|beta}} | {{module rating|beta}} | ||
| − | This module implements the {{tl|Roman}} template. For documentation, please see the template page. For test cases, please see [[Template:Roman/testcases]]. | + | This module implements the {{tl|Roman}} template. For behavioral documentation, please see the template page. For test cases, please see [[Template:Roman/testcases]]. |
| + | |||
| + | *Module supports 0 as a Roman numeral, displays as 'N'. | ||
| + | *Prior to 25 April 2016, used to display 69105 as <span style="text-decoration:overline;">LXV</span>MMMMCV. With the addition of <span style="text-decoration:overline;">IX</span> and <span style="text-decoration:overline;">IV</span> being 9000 and 4000 respectively, we now display 69105 as <span style="text-decoration:overline;">LXIX</span>CV. | ||
| + | *Module handles decimal, fractional, and arithmetic expressions to a precision of 1/1728. {{green|Uses <tt>#expr:</tt> at line 118.}} | ||
| + | |||
| + | ==Handling tricky cases (like 0.00001 and 99.99999)== | ||
| + | #Find the Roman numerals for the integer part of the number. | ||
| + | #If the number is not an integer: | ||
| + | #* Add half of the smallest unit (1/1728) to simulate rounding instead of truncation. | ||
| + | #* Ensure this new result is between 1/1728 and 1727/1728. (actually 1.1/1728 and 1727.1/1728 due to floating point rounding issues) | ||
| + | #Hence, 0.00001 is guaranteed to have at least the smallest unit symbol (instead of being blank or 0), and 99.99999 does not display as 100 or 99 and 2 halves. | ||
| + | |||
| + | ==Validation== | ||
| + | *[[Template:Roman/testcases]] | ||
| + | *[[Module:Roman/testcases]] - does not contain fractional/decimal tests | ||
| + | *The template supports subst: and safesubst:. | ||
Revision as of 09:09, 25 April 2016
| 40x40px | This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. |
This module implements the {{Roman}} template. For behavioral documentation, please see the template page. For test cases, please see Template:Roman/testcases.
- Module supports 0 as a Roman numeral, displays as 'N'.
- Prior to 25 April 2016, used to display 69105 as LXVMMMMCV. With the addition of IX and IV being 9000 and 4000 respectively, we now display 69105 as LXIXCV.
- Module handles decimal, fractional, and arithmetic expressions to a precision of 1/1728. Uses #expr: at line 118.
Handling tricky cases (like 0.00001 and 99.99999)
- Find the Roman numerals for the integer part of the number.
- If the number is not an integer:
- Add half of the smallest unit (1/1728) to simulate rounding instead of truncation.
- Ensure this new result is between 1/1728 and 1727/1728. (actually 1.1/1728 and 1727.1/1728 due to floating point rounding issues)
- Hence, 0.00001 is guaranteed to have at least the smallest unit symbol (instead of being blank or 0), and 99.99999 does not display as 100 or 99 and 2 halves.
Validation
- Template:Roman/testcases
- Module:Roman/testcases - does not contain fractional/decimal tests
- The template supports subst: and safesubst:.