Module:Roman/doc explained
This module implements the template. For behavioral documentation, please see the template page. For test cases, please see .
- 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.
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
- - does not contain fractional/decimal tests
- The template supports
subst:
and safesubst:
.