Search code examples
c#.net.net-3.5

How can I convert an integer into its verbal representation?


Is there a library or a class/function that I can use to convert an integer to its verbal representation?

Example input:

4,567,788`

Example output:

Four million, Five hundred sixty-seven thousand, seven hundred eighty-eight


Solution

  • If you use the code found in converting numbers in to words C#, and you need it for decimal numbers, here is how to do it:

    public string DecimalToWords(decimal number)
    {
        if (number == 0)
            return "zero";
    
        if (number < 0)
            return "minus " + DecimalToWords(Math.Abs(number));
    
        string words = "";
    
        int intPortion = (int)number;
        decimal fraction = (number - intPortion)*100;
        int decPortion = (int)fraction;
    
        words = NumericToWords(intPortion);
        if (decPortion > 0)
        {
            words += " and ";
            words += NumericToWords(decPortion);
        }
        return words;
    }