Convertir números a letras por medio de una función recursiva
Club Delphi,
Revisen el siguiente código en Delphi: El código anterior en Delphi 7 sobre Windows 7 Professional x32 permite : Convertir números a letras por medio de una función recursiva y escoger si los céntimos son visualizados como letras o fracción, como se muestra en la siguiente imagen: El código del ejemplo esta disponible en : NumbersToLetters.rar Espero sea útil :) Nelson. |
"con 99/100"
¿Eso dónde se usa? |
Casimiro,
Cita:
Saludos, Nelson. |
Cita:
Código:
,99 |
Casimiro,
Cita:
Abrevia con respecto a la conversión de números a letras como se puede observar en la imagen del Msg #1. Saludos, Nelson. |
Ya, claro, pero es que entonces no ha sido convertido a letras :)
|
Que no digo que esté mal el conversor, está muy bien, es cortito, pocas línes y muy claro. ^\||/
Tan solo que me ha llamado la atención eso del 99/100 |
Cita:
De tal forma que la cantidad $1,250.35 se escribe así: Un Mil Docientos Cincuenta Pesos 35/100 M.N. Saludos |
Curioso.
:) |
Estaría bien subirlo al FTP, junto con el ejemplo.
Ah!!!! y gracias por compartirlo. ^\||/ |
Cita:
Me permito algunos comentarios sobre lo expuesto hasta ahora por los compañeros. Es más correcto escribir doscientos que docientos. Y además deben evitarse las letras mayúsculas iniciales, con excepción de la primera palabra cuando sea inicio de enunciado. En español, y más concretamente en castellano, los números y las monedas, así como los adjetivos gentilicios, los nombres de los días de la semana, los meses y las estaciones del año, no deben iniciar con letra mayúscula (con la salvedad antes mencionada). Adicionalmente, el un para decir un mil es opcional. Aparentemente se acostumbraba agregar el un para dificultar la alteración fraudulenta de documentos (cheques que podrían pasar de "mil trescientos..." a "ocho mil trescientos...", por ejemplo). Por otro lado, Nelson, debes revisar tu función. Falta el acento en millon y centimos, hay erratas en varios centenarios (por ejemplo falta la ese en seicientos) y otras cantidades no están del todo bien, como "diez y seis", que para expresar cantidades con letra debería ser dieciséis. Ahora, una recomendación de programador bibliotecario. Cuando creen este tipo de funciones, intenten ver más allá de la necesidad inmediata que desean resolver. Una gran función (o método) que convierte cantidades monetarias a su expresión con letra puede ser dividida en dos o más funciones que le den más utilidad al código. Por ejemplo, pueden crear una función que sirva para convertir cualquier número entero a su expresión con letras, y luego crear una segunda función que sirva para convertir cualquier cantidad monetaria (número decimal) a su expresión con letras. Entonces hacer que la segunda función se apoye llamando a la primera función. Yendo más allá, a la primera función pueden agregarle un parámetro para indicar género (masculino, femenino y neutro). Y con ello podrán expresar con letra prácticamente cualquier cantidad que así deba aparecer en algún documento (cuadernos, paellas, etc.), sin limitar un código tan valioso para servir solamente con dinero. Reciban un cordial saludo. :) |
German,
Cita:
En el Msg #1 hay un link al FTP del Club Delphi para descargar el código del ejemplo y su ejecutable. Saludos, Nelson. |
Cita:
|
Cita:
Cita:
Cita:
Saludos |
Al,
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Saludos, Nelson. |
Club Delphi,
Revisen el siguiente código: El código anterior en Delphi 7 sobre Windows 7 Professional x32 es la Versión 2 del código propuesto en el Msg #1, el cual permite : Convertir números a letras por medio de una función recursiva y escoger entre tres opciones de céntimos y mayúsculas, como se muestra en la siguiente imagen: El código del ejemplo esta disponible en : NumbersToLetters_v2.rar Notas: 1- Esta versión es más adaptable a diferentes requerimientos. 2- La función mantiene la simplicidad de la original. 3- Se corrigieron algunas erratas y detalles menores. Espero sea útil :) Nelson. |
Gracias a todos por compartir sus conocimientos
|
Muchas gracias por el aporte Nelson ^\||/
Saludos :) |
La franja horaria es GMT +2. Ahora son las 17:36:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi