¿Como convertir Numeros a Letras con PHP?
Misma pregunta que me hacía hasta hace apenas ayer u_u me puse las pilas un rato, y ¡¡¡magia!!! quedó resuelto
trabajé un sistema de facturación improvisado
Se pretende partir de un valor numérico como en el siguiente ejemplo, conseguir su valor escrito en Letras:
- 159 = ciento cincuenta y nueve
- 22 = veinte y dos
- 3.1416 = tres con catorce decimales
Conseguí varios ejemplos, incluso uno de PHP Pear, pero no, ninguno me convenció. La mayoría por mal hechos, otros muy limitados, y los de PHP Pear por que no todos los servers lo tienen instalado /puf Todos funcionaban, pero uff lo hacían a su modo y bueeeno, valla problema lol
Y como siempre (para no perder la costumbre), tomé prestada alguna que otra línea de código ajeno para crear mi aplicación ^^ Lo convertí todo en una clase y listo, ahora puedo trabajar con mi clase algo así:
1er paso, descargarla:
- Version 0.1 (2007-08-07)
- Primera versión
2do paso, incluirla en donde trabajaremos.
include(ABSPATH.'/includes/numerosALetras.class.php');
/*
Ahora puedes trabajar con la clase.
*/
- Creamos una instancia de la clase con un valor numérico, y mostramos el resultado.
php:
Aquí el resultado:
ciento cincuenta y nueve - Ahora, lo mismo que el punto anterior, pero re-utilizando la instancia de la clase para convertir y mostrar otro valor.
Aquí el resultado:
veinte y dos
tres con catorce decimales - En este último ejemplo traducimos una lista de valores, utilizando la misma instancia de la clase.
php:
El resultado:
veinte y dos
tres con catorce decimales
cien
ciento cincuenta y seis
quinientos doce
mil veinte y cuatro
Dejo el código para quien pueda/necesite, y lo use, y si no pues sólo una miradita en el código y se diviertan criticando
Algunas referencias
6 Comments
Make A CommentComments RSS Feed TrackBack URL




September 7th, 2007 at 11:53 pm
Creo que hay algún error, porque donde pones:
echo $n->convertir(256)."";en el cuadro de ejemplo el resultado es:
ciento cincuenta y seis=SSeptember 10th, 2007 at 7:34 am
No es correcto: Dices
16340 es dieciseis mil trescientos cuarenta y tu algoritmo traduce diez y seis mil trescientos cuarenta
22047 es veintidos mil cuarenta y siete y tu algoritmo traduce veinte y dos mil cuarenta y siete
September 10th, 2007 at 11:03 am
uff! muchos errores. Gracias por su atención, veré que puedo hacer para solucionarlo.
Al menos funciona para las cantidades esperadas en el sistema de facturación que improvisé.
September 14th, 2007 at 9:40 am
Tu algoritmo es bueno, solamente es cuestion de corregir el resultado, son solo errores de dedo, echale ganas.
September 15th, 2007 at 2:45 pm
Espero el fin de semana hecharle un ojo a fondo en el código para solucionar ese detalle. Por el momento estaba probando esta version de Juan Luis, que funciona perfecto pero no le entiendo al código nada de nada :S ademas, este código hace todo en un ciclo.
October 3rd, 2007 at 10:41 pm
hola amigos que bueno sus codigos pero veo que en la version de Juan Luis bueno probando con el numero 100 no me salia ningun resultado, el caso es que demora como que quiere cargar la pagina pero no sale nada asi que puse otro numero y carga normal haber pruebe gracias