Convertir números a letras.

public static string NumeroaLetras(decimal Numero) { decimal _fraccion = Numero % 1; if (_fraccion == 0) { Numero = (int)Numero; } string _convertir = Numero.ToString(); string _enLetras = ""; string _decimal = ""; char[] delimitar = {'.',',' }; if (_convertir == "0.00" || _convertir == "0") { return "CERO PESOS 00/100 M. N."; } else { string[] _componentes = _convertir.Split(delimitar); if (_componentes.Length == 1) { _decimal = " PESOS 00/100 M. N."; } else { if (_componentes[1].Length == 1) { _componentes[1] = _componentes[1] + "0"; } _decimal = " PESOS " + _componentes[1] + "/100 M. N."; } char[] _numeros =_componentes[0].ToCharArray(); switch (_numeros.Length) { case 1: _enLetras = Unidades(_numeros[0]); break; case 2: _enLetras = Decenas(_numeros[0],_numeros[1]); break; case 3: _enLetras = Centenas(_numeros[0],_numeros[1],_numeros[2]); break; case 4: _enLetras = UnidadesDeMillar(_numeros[0], _numeros[1], _numeros[2],_numeros[3]); break; case 5: _enLetras = DecenasDeMillar(_numeros[0], _numeros[1], _numeros[2], _numeros[3],_numeros[4]); break; } } return _enLetras+_decimal; } private static string Unidades(char _unidad) { int _elemento = CharToInt(_unidad); string[] unidades = new string[10] { "", "UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE" }; return unidades[_elemento].Trim(); } private static string Decenas(char _decena, char _unidad) { int decena = CharToInt(_decena); int unidad = CharToInt(_unidad); string[] diez = new string[10] { "","ONCE","DOCE","TRECE","CATORCE","QUINCE","DECISEIS","DIECISIETE","DIECIOCHO","DIECINUEVE"}; string[] decenas = new string[10] { "","DIEZ","VEINTE","TREINTA","CUARENTA","CINCUENTA","SESENTA","SETENTA","OCHENTA","NOVENTA"}; if (decena == 1) { if (unidad == 0) { return decenas[decena]; } else { return diez[unidad]; } }else if(decena == 2) { if (unidad == 0) { return decenas[decena]; } else { return "VEINTI"+ Unidades(_unidad).Trim(); } } else { if (unidad == 0) { return decenas[decena]; } else { return decenas[decena] + " Y " + Unidades(_unidad).Trim(); } } } private static string Centenas(char _centena, char _decena, char _unidad) { int centena = CharToInt(_centena); int decena = CharToInt(_decena); int unidad = CharToInt(_unidad); string numero = ""; string[] centenas = new string[10] { "","CIENTO","DOSCIENTOS","TRESCIENTOS","CUATROCIENTOS","QUINIENTOS","SEISCIENTOS","SETECIENTOS","OCHOCIENTOS","NOVECIENTOS"}; if (centena == 1 && decena == 0 && unidad == 0) { return "CIEN"; }else { numero = centenas[centena]+ " "+Decenas(_decena,_unidad).Trim(); if (decena == 0) { numero.Replace("Y","").Trim(); } return numero; } } private static string UnidadesDeMillar(char _millar,char _centena, char _decena, char _unidad) { string numero = Unidades(_millar) + " MIL " + Centenas(_centena, _decena, _unidad).Trim(); numero = numero.Replace("UN MIL", "MIL").Trim(); if (CharToInt(_centena) == 0 && CharToInt(_decena) == 0) { numero = numero.Replace(" Y "," ").Trim(); } return numero; } private static string DecenasDeMillar(char _decenasDeMillas, char _millar, char _centena, char _decena, char _unidad) { string numero = Decenas(_decenasDeMillas, _millar) + " MIL " + Centenas(_centena, _decena, _unidad); return numero; }

3 Responses

Hola Hector, yo no se nada de #C, yo trabajo con PHP, CSS HTML. Como hago para probar tu codigo? Gracias
@Irq Borjas Neccesitas algun compilador como Visual Studios de Microsoft. y este codigo solo cambia el numero de numeros a letras, por lo cual deberias hacer una Base de un programa básico par poderlo pribar.
Irq Borjas tengo la versión del mismo código para PHP, la subo mas tarde

Write a comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.