Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/04/2013, 15:01
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: escribir numeros con letras

Es un problema de algoritmo, no algo que cubra el manual de un lenguaje.PHP no tiene una función que haga eso (obviamente...imagínate hacerlo para cada idioma del mundo..).
Así, sin pensar mucho en el problema,en castellano, yo haría un sistema basado en 2 capas.La capa interna, que generaria frases con respecto a "reglas", y la externa, para gestionar las excepciones.
Del 1 al 99, hay tantas excepciones, que es mejor directamente codificar todo ese rango en un diccionario.
A partir de ahi, cualquier numero mayor de 99 que tenga un 1 a la izquierda, va a tener una pronunciación "diferente":
"cien","mil","un millón", etc.
Para el resto de los numeros, es posible usar "dos-cientos", "tres-cientos", es decir, el mismo array que se ha hecho del 1-99, usarlo para generar el resto.Excepciones : quinientos, novecientos.
Para los miles, es igual, pero no hay que unir el prefijo y el sufijo"dos mil","tres mil", etc, y no tiene excepciones.
Para los cientos de miles, hay que usar las reglas de los cientos, y de los miles.
Para los millones, es equivalente a los miles.