PHP: ¿Cómo Pasar un numero a palabras?
De Foros del Web
Esta Funcion es Demasiado Buena. La Busque en los faq y no la encontre asiq ue tuvimos que hacerla, y como no soy amargao ni apretao aqui esta.
Bueno esta funcion la necesitaba para Imprimir un Comprobante de pago al cual aparate del monto en digitos habia que imprimirlo con palabras.
Código PHP:
$numeros = array("-", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve"); $numerosX = array("-", "un", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve"); $numeros100 = array("-", "ciento", "doscientos", "trecientos", "cuatrocientos", "quinientos", "seicientos", "setecientos", "ochocientos", "novecientos"); $numeros11 = array("-", "once", "doce", "trece", "catorce", "quince", "dieciseis", "diecisiete", "dieciocho", "diecinueve"); $numeros10 = array("-", "-", "-", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa"); function tresnumeros($n, $last) { global $numeros100, $numeros10, $numeros11, $numeros, $numerosX; if ($n == 100) return "cien "; if ($n == 0) return "cero "; $r = ""; $cen = floor($n / 100); $dec = floor(($n % 100) / 10); $uni = $n % 10; if ($cen > 0) $r .= $numeros100[$cen] . " "; switch ($dec) { case 0: $special = 0; break; case 1: $special = 10; break; case 2: $special = 20; break; default: $r .= $numeros10[$dec] . " "; $special = 30; break; } if ($uni == 0) { if ($special==30); else if ($special==20) $r .= "veinte "; else if ($special==10) $r .= "diez "; else if ($special==0); } else { if ($special == 30 && !$last) $r .= "y " . $numerosX[$n%10] . " "; else if ($special == 30) $r .= "y " . $numeros[$n%10] . " "; else if ($special == 20) { if ($uni == 3) $r .= "veintitrés "; else if (!$last) $r .= "veinti" . $numerosX[$n%10] . " "; else $r .= "veinti" . $numeros[$n%10] . " "; } else if ($special == 10) $r .= $numeros11[$n%10] . " "; else if ($special == 0 && !$last) $r .= $numerosX[$n%10] . " "; else if ($special == 0) $r .= $numeros[$n%10] . " "; } return $r; } function seisnumeros($n, $last) { if ($n == 0) return "cero "; $miles = floor($n / 1000); $units = $n % 1000; $r = ""; if ($miles == 1) $r .= "mil "; else if ($miles > 1) $r .= tresnumeros($miles, false) . "mil "; if ($units > 0) $r .= tresnumeros($units, $last); return $r; } function docenumeros($n) { if ($n == 0) return "cero "; $millo = floor($n / 1000000); $units = $n % 1000000; $r = ""; if ($millo == 1) $r .= "un millón "; else if ($millo > 1) $r .= seisnumeros($millo, false) . "millones "; if ($units > 0) $r .= seisnumeros($units, true); return $r; }
la funcion que se usa es docenumeros($numero)
ojala les sirva....
--The_dark_roy 27 Oct 2004
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
