Convert number to word

Convert number to word

  
Is there anything available to convert a number to the equivalent word (e.g. 1 to "one", etc)? TIA!
Gerald Seidl wrote:
Is there anything available to convert a number to the equivalent word (e.g. 1 to "one", etc)? TIA!
 
 Hi Gery,

Check the attachment, we can quickly make it using javascript.

Regards,
Nelson Baptista
wrote:
 
 Hi Gery,

Check the attachment, we can quickly make it using javascript.

Regards,
Nelson Baptista
 
 Thanks very much.
"osjs('#"+TWord2.Id+"').val(toWords("+Number+"))"

I'm not directly displaying this on the screen, so how would I return the result in a variable?
Hi Gerry,

Create an Input Field that has the chosen Variable associated with it, then you assign the value by Javascript.

So taking your last post it would be something like this:
"document.getElementById(""+InputField.Id+"").value = osjs('#"+TWord2.Id+"').val(toWords("+Number+"))"

Cheers,
Hermínio Mira
Since the goal isn't showing the value directly, it would be easier to build an extension for that purpose, and use the resulting action inside the business logic. If set to function, it can even be used in the screen through expressions.

A simple google search will return numerous examples on how to do it in C#.

Here's my take on that (Sorry, it's in Portuguese)

        private static string[] _single = { 
                                             "Zero",
                                             "Um", 
                                             "Dois", 
                                             "Três", 
                                             "Quatro", 
                                             "Cinco", 
                                             "Seis", 
                                             "Sete", 
                                             "Oito", 
                                             "Nove" };
        private static string[] _twoDigit = {
                                             "Onze",
                                             "Doze",
                                             "Treze",
                                             "Catorze",
                                             "Quinze",
                                             "Dezasseis",
                                             "Dezassete",
                                             "Dezoito",
                                             "Dezanove"
                                           };
        private static string[] _singleDecimal = { 
                                            "Dez", 
                                            "Vinte", 
                                            "Trinta", 
                                            "Quarenta",
                                            "Cinquenta",
                                            "Sessenta",
                                            "Setenta",
                                            "Oitenta",
                                            "Noventa"
                                                };
        private static string _singleHundred = "Cento";
        private static string thousands = "Mil";
        private static string[] _hundreds = {
                                               "Cem",
                                               "Duzentos",
                                               "Trezentos",
                                               "Quatrocentos",
                                               "Quinhentos",
                                               "Seiscentos",
                                               "Setecentos",
                                               "Oitocentos",
                                               "Novecentos"
                                           };
        private static string WrittenNumber(int val)
        {
            string _strVal = val.ToString();
            if (_strVal.Length == 1) return _single[val];
            if (_strVal.Length == 2)
            {
                int decimalNr = int.Parse(_strVal.ToCharArray()[0].ToString());
                int singleNr = val - decimalNr * 10;
                
                if (singleNr == 0) return _singleDecimal[decimalNr-1];
                if (decimalNr == 1) return _twoDigit[singleNr - 1];
                else return _singleDecimal[decimalNr - 1] + " e " + WrittenNumber(singleNr);
            }
            if (_strVal.Length == 3)
            {
                int hundredNr = int.Parse(_strVal.ToCharArray()[0].ToString());
                int remainder = val - hundredNr * 100;
 
                if (remainder > 0) return ((hundredNr == 1) ? _singleHundred : _hundreds[hundredNr - 1]) + " e " + WrittenNumber(remainder);
                return _hundreds[hundredNr - 1];
            }
            if (_strVal.Length == 4 || _strVal.Length == 5)
            {
                int thousandNr = int.Parse(_strVal.Substring(0,_strVal.Length - 3));
                int remainder = val - thousandNr * 1000;
 
                if (remainder == 0) return ((thousandNr > 1) ? WrittenNumber(thousandNr) + " " : "") + thousands;
                else return ((thousandNr > 1) ? WrittenNumber(thousandNr) + " " : "") + thousands + " " + ((remainder>99)?"":"e ") + WrittenNumber(remainder);           
            }
            return _strVal;
        }
        static void Main(string[] args)
        {
            Console.WriteLine(WrittenNumber(2000));
        } 
 
Hay Gerry, Download and use the given extention.

http://www.outsystems.com/forge/component/1217/number-to-word/  

It will convert the number into Word.


Thanks
Rajendra