free web hostingHosting24.com web hosting

De numeros a letras en PHP


En ocaciones tuve la necesidad de pasar de números a letras con ASP ,que lo dejaré para un proximo post. Ahora comparto las mismas funciones pero para PHP. Es útil, esencialmente cuando queremos representar el dinero en letras o números altos donde necesariamente debemos pasarlo a texto. La funcion es sumamente fácil de usarlo en, principio solo debemos pasar el número de esta manera:

echo convertir($numero);

donde $numero es la variable que lo contiene. La función a ejecutar, previa recepción de la variable queda de esta forma:

function convertir($numero){
   $numf = milmillon($numero);
   return $numf;
}

La funcion del milmillon:

function milmillon($nummierod){
		if ($nummierod >= 1000000000 && $nummierod <2000000000){
			$num_letrammd = "MIL ".(cienmillon($nummierod%1000000000));
		}
		if ($nummierod >= 2000000000 && $nummierod <10000000000){
			$num_letrammd = unidad(Floor($nummierod/1000000000))." MIL ".(cienmillon($nummierod%1000000000));
		}
		if ($nummierod < 1000000000)
			$num_letrammd = cienmillon($nummierod);

		return $num_letrammd;
	}

Ahora la del cienmillon:

function cienmillon($numcmeros){
		if ($numcmeros == 100000000)
			$num_letracms = "CIEN MILLONES";
		if ($numcmeros >= 100000000 && $numcmeros <1000000000){
			$num_letracms = centena(Floor($numcmeros/1000000))." MILLONES ".(millon($numcmeros%1000000));
		}
		if ($numcmeros < 100000000)
			$num_letracms = decmillon($numcmeros);
		return $num_letracms;
	}

Por supuesto la decena del millon:

function decmillon($numerodm){
		if ($numerodm == 10000000)
			$num_letradmm = "DIEZ MILLONES";
		if ($numerodm > 10000000 && $numerodm <20000000){
			$num_letradmm = decena(Floor($numerodm/1000000))."MILLONES ".(cienmiles($numerodm%1000000));
		}
		if ($numerodm >= 20000000 && $numerodm <100000000){
			$num_letradmm = decena(Floor($numerodm/1000000))." MILLONES ".(millon($numerodm%1000000));
		}
		if ($numerodm < 10000000)
			$num_letradmm = millon($numerodm);

		return $num_letradmm;
	}

Llegamos a las del millon:

function millon($nummiero){
		if ($nummiero >= 1000000 && $nummiero <2000000){
			$num_letramm = "UN MILLON ".(cienmiles($nummiero%1000000));
		}
		if ($nummiero >= 2000000 && $nummiero <10000000){
			$num_letramm = unidad(Floor($nummiero/1000000))." MILLONES ".(cienmiles($nummiero%1000000));
		}
		if ($nummiero < 1000000)
			$num_letramm = cienmiles($nummiero);

		return $num_letramm;
	}

El resto del código en archivo de descarga.

-Editado- Faltaba los decimales, gracias Cristian (@dreamcoders) por el aporte de los decimales.

Espero les sea de utilidad, como siempre les dejo la Descarga del codigo. Cualquier duda o sugerencia haganlo en los comentarios saludos y hasta un próximo post ;-) .

También te puede Interesar

¿Disfrutaste esta entrada? Por qué no dejas un comentario abajo y continúas la conversación, o te suscribes a mi feed y obtienes artículos como este enviados a tu lector de feeds.

Comentarios

muchas gracias, ha sido de mucha ayuda

Hola Erick, gracias por pasar, contentos por ayudarte. Un cordial saludo.

Deja un Comentario

(requerido)

(requerido)