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
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.