private static StringBuilder ToWords()

in src/Lucene.Net.Benchmark/Support/Util/EnglishNumberFormatExtensions.cs [52:201]


        private static StringBuilder ToWords(long value, StringBuilder builder)
        {
            if (value == 0) builder.Append("zero");

            if (value < 0)
            {
                builder.Append("negative ");
                ToWords(Math.Abs(value), builder);
            }

            long unit;

            if (value >= QUADRILLION)
            {
                unit = (value / QUADRILLION);
                value -= unit * QUADRILLION;

                ToWords(unit, builder);
                builder.Append(" quadrillion");
                if (value > 0) builder.Append(' ');
            }

            if (value >= TRILLION)
            {
                unit = (value / TRILLION);
                value -= unit * TRILLION;

                ToWords(unit, builder);
                builder.Append(" trillion");
                if (value > 0) builder.Append(' ');
            }

            if (value >= BILLION)
            {
                unit = (value / BILLION);
                value -= unit * BILLION;

                ToWords(unit, builder);
                builder.Append(" billion");
                if (value > 0) builder.Append(' ');
            }

            if (value >= MILLION)
            {
                unit = (value / MILLION);
                value -= unit * MILLION;

                ToWords(unit, builder);
                builder.Append(" million");
                if (value > 0) builder.Append(' ');
            }

            if (value >= THOUSAND)
            {
                unit = (value / THOUSAND);
                value -= unit * THOUSAND;

                ToWords(unit, builder);
                builder.Append(" thousand");
                if (value > 0) builder.Append(' ');
            }

            if (value >= HUNDRED)
            {
                unit = (value / HUNDRED);
                value -= unit * HUNDRED;

                ToWords(unit, builder);
                builder.Append(" hundred");
                if (value > 0) builder.Append(' ');
            }

            if (value >= 90)
            {
                value -= 90;
                builder.Append("ninety");
                if (value > 0) builder.Append('-');
            }

            if (value >= 80)
            {
                value -= 80;
                builder.Append("eighty");
                if (value > 0) builder.Append('-');
            }

            if (value >= 70)
            {
                value -= 70;
                builder.Append("seventy");
                if (value > 0) builder.Append('-');
            }

            if (value >= 60)
            {
                value -= 60;
                builder.Append("sixty");
                if (value > 0) builder.Append('-');
            }

            if (value >= 50)
            {
                value -= 50;
                builder.Append("fifty");
                if (value > 0) builder.Append('-');
            }

            if (value >= 40)
            {
                value -= 40;
                builder.Append("forty");
                if (value > 0) builder.Append('-');
            }

            if (value >= 30)
            {
                value -= 30;
                builder.Append("thirty");
                if (value > 0) builder.Append('-');
            }

            if (value >= 20)
            {
                value -= 20;
                builder.Append("twenty");
                if (value > 0) builder.Append('-');
            }

            if (value == 19) builder.Append("nineteen");
            if (value == 18) builder.Append("eighteen");
            if (value == 17) builder.Append("seventeen");
            if (value == 16) builder.Append("sixteen");
            if (value == 15) builder.Append("fifteen");
            if (value == 14) builder.Append("fourteen");
            if (value == 13) builder.Append("thirteen");
            if (value == 12) builder.Append("twelve");
            if (value == 11) builder.Append("eleven");
            if (value == 10) builder.Append("ten");
            if (value == 9) builder.Append("nine");
            if (value == 8) builder.Append("eight");
            if (value == 7) builder.Append("seven");
            if (value == 6) builder.Append("six");
            if (value == 5) builder.Append("five");
            if (value == 4) builder.Append("four");
            if (value == 3) builder.Append("three");
            if (value == 2) builder.Append("two");
            if (value == 1) builder.Append("one");

            return builder;
        }