- Notifications
You must be signed in to change notification settings - Fork0
Converting numbers to and from roman numerals as easy as II+II=IV
License
NotificationsYou must be signed in to change notification settings
picrap/RomanNumerals
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Converting numbers to and from roman numerals as easy as II+II=IV.
Available as a package.
There are very few features:
- Convert integers to roman numerals
- Convert roman numerals to integers
- Use roman numeral ASCII representation (I, II, III, IV)
- Use roman numeral Unicode representation (Ⅰ, Ⅱ, Ⅲ, Ⅳ)
- Use roman numeral vinculum extensions (V̅I̅=6000, I̿I̿=200000, etc.)
- Use roman numeral apostrophus (C|Ɔ=1000, |ƆƆ=5000, CC|ƆƆ=10000, |ƆƆƆ=50000, CCC|ƆƆƆ=100000)
- Use roman numeral apostrophus special characters (ↀ=1000, ↁ=5000, ↂ=10000, ↇ=50000, ↈ=100000)
- Use of positive-only combinations (use ⅠⅠⅠⅠ instead of Ⅳ)
To display:uint
tostring
(representing a Roman numeral)
Console.WriteLine(RomanNumerals.Convert.ToRomanNumerals(123));// CXXIIIConsole.WriteLine(RomanNumerals.Convert.ToRomanNumerals(227,NumeralFlags.Unicode));// ⅭⅭⅩⅩⅦ
Parsing:string
touint
Console.WriteLine(RomanNumerals.Convert.FromRomanNumerals("IV"));// 4
All methods also works as extension methods:
usingRomanNumerals;vara1=Convert.ToRomanNumerals(123);vara2=123.ToRomanNumerals();// same as above 😍
Formatting is done using theNumeralBuilder
class, with several options.NumeralBuilder
implementsICustomFormatter
with the following flags:
Flag | Effect |
---|---|
0 | Don’t use negative digits (turns4 toIIII instead ofIV ) |
V or- or= | Use vinculum notation (turns1,000 toĪ instead ofM , but also1,000,000 toI̿ or5,000,000 toV̿ ) |
' or ` | ` |
u | Use Unicode (subset of Unicode Roman numerals) |
U | Use Unicode plus ligatures (full range of Unicode Roman numerals) |
A | Use ASCII, the default case |
Parsing is done using theNumeralParser
class (with less options, because it parses all forms at once).
Read more about roman numerals at
- https://en.wikipedia.org/wiki/Roman_numerals for general information
- https://en.wikipedia.org/wiki/Numerals_in_Unicode#Roman_numerals for Unicode information
- https://www.unicode.org/charts/PDF/U2150.pdf for Unicode chart