Currently the best, most robust, library for this is definitely Humanizer. It’s open sourced and available as a nuget:
Console.WriteLine(4567788.ToWords()); // => four million five hundred and sixty-seven thousand seven hundred and eighty-eight
It also has a wide range of tools solving the small problems every application has with string
s, enum
s, DateTime
s, TimeSpan
s and so forth, and supports many different languages.
Console.WriteLine(4567788.ToOrdinalWords().Underscore().Hyphenate().ApplyCase(LetterCasing.AllCaps)); // => FOUR-MILLION-FIVE-HUNDRED-AND-SIXTY-SEVEN-THOUSAND-SEVEN-HUNDRED-AND-EIGHTY-EIGHTH