miércoles, 26 de febrero de 2014

Numeros a letras

Hoy estaba todo juicioso como siempre, trabajando, cuando me quisieron meter la pica de cómo hacer el típico algoritmo para transformar de números a letras, pues bueno como estaba todo juicioso no cambié de tema y seguí trabajando (porque siempre trabajo juicioso) pero llegué a la casa y me puse manos a la obra.

Los requisitos eran hacerlo en ingles (you know numbers to words) y hacerlo en ruby.

¿Qué lógica utilicé?
Bueno, tanto las unidades como las centenas utilizan los mismos nombres salvo que las centenas llevan incorporada la palabra hundred así que utilicé un arreglo para manejar estas dos posiciones, luego caí en cuenta que en inglés (¿también en español?) el proceso se repite cada tres dígitos, es decir procesar por ejemplo 123 y 123xxx (nada en particular las 3 x's solo me refiero a cuales quiera dígitos que usemos) da exactamente igual salvo que cada 3 dígitos toca ponerle un nombre (miles, millones, billones, etc) por lo que para esta parte también generé un arreglo con los nombres, y el último caso es que los nombres para las decenas dependen del valor de las unidades cuando la decena es 1, es decir para los dieces (¿cómo se dice esto en español?) once, doce, etc, así que creé 2 arreglos, uno para las decenas con dígito 1 y otro para las decenas con cualquier otro dígito.

Y bueno, esto es lo que salió:

En Gist para que lo copien, mejoren, etc:

No hay comentarios.:

Publicar un comentario