Skip to content

picrap/RomanNumerals

Repository files navigation

RomanNumerals

Converting numbers to and from roman numerals as easy as II+II=IV.
Available as a NuGet package package.

What is does

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 Ⅳ)

How it works

Simple way

To display: uint to string (representing a Roman numeral)

Console.WriteLine(RomanNumerals.Convert.ToRomanNumerals(123)); // CXXIII
Console.WriteLine(RomanNumerals.Convert.ToRomanNumerals(227, NumeralFlags.Unicode)); // ⅭⅭⅩⅩⅦ

Parsing: string to uint

Console.WriteLine(RomanNumerals.Convert.FromRomanNumerals("IV")); // 4

All methods also works as extension methods:

using RomanNumerals;
var a1 = Convert.ToRomanNumerals(123);
var a2 = 123 .ToRomanNumerals(); // same as above 😍

With options

Formatting

Formatting is done using the NumeralBuilder class, with several options. NumeralBuilder implements ICustomFormatter with the following flags:

Flag Effect
0 Don’t use negative digits (turns 4 to IIII instead of IV)
V or - or = Use vinculum notation (turns 1,000 to Ī instead of M, but also 1,000,000 to I̿ or 5,000,000 to V̿)
' 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

Parsing is done using the NumeralParser class (with less options, because it parses all forms at once).

Some documentation

Read more about roman numerals at

About

Converting numbers to and from roman numerals as easy as II+II=IV

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages