FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Convertir un texto de un edit en un número con decimales
Hola a todos y feliz navidad!
tengo un número ingresado en un Edit, por ejemplo: 1.540,65 que posteriormente va a ser pasado a una función de monto escrito para obtener el número en letras, si trato de convertirlo con StrToFloat no me acepta el punto de mil y si trato de hacerlo con la función VAL entonces si me toma el punto de mil pero no los decimales, es decir, me dice que el número es 1.540 (como si fuese entero) he tratado con otros métodos, como la variable DecimalSeparator y otras cosas pero no logro obtener el número completo con sus decimales para poderlo pasar a la función de monto escrito y agradecería vuestra ayuda. Gracias.
__________________
Oskar |
#2
|
||||
|
||||
Cita:
Suerte.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#3
|
|||
|
|||
Tiammat, gracias por tu respuesta pero ya probé de esa manera y no me funcionó y aunque así funcionara tampoco estaría bien porque tengo que pasar ese formato a una función de monto escrito que me va a convertir la cifra en letras y lo haría entonces de forma errónea.
Se te ocurre otra idea?
__________________
Oskar |
#4
|
||||
|
||||
Cita:
Usa un TMaskEdit, y al procesar tu función de "poner en palabras tus numeritos" tomas el Value del TMaskEdit...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#5
|
|||
|
|||
No, lo he probado y no me funciona, el valor que tengo que pasar a la función de letras tiene que ser real, no me acepta que le pase directamente un string desde un maskedit o desde un edit, por eso tengo que convertirla con strToFloat o con val, pero con strtofloat no logro que tome el punto de los miles y con VAL no me toma los decimales y no veo otra función que lo haga.
Por supuesto que sé que esta no es la primera vez que pasa eso, pero no encuentro nada en los foros, veo que todo el mundo que necesita convertir a real un número desde un edit siempre maneja valores por debajo de mil, por lo que no tienen el problema del punto.
__________________
Oskar |
#6
|
||||
|
||||
Cita:
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#7
|
||||
|
||||
No entendí bien. El problema es el punto? que en el edit no pongan punto, si ponen, que alguna funcion lo quite y listo.
Saludos. |
#8
|
|||
|
|||
gracias por las respuestas
Lo que sucede es que el punto tiene que ir porque aparte de que va a la función de monto escrito también va a una hoja para de qreport para posteriormente imprimir esos datos en un cheque y si el punto no está el cheque no sirve
__________________
Oskar |
#9
|
||||
|
||||
Sigo sin entender bien que es lo que pasa.
Cuando se crea mi aplicación lo que hago es esto para no tener problemas con los separadores.
|
#10
|
||||
|
||||
Hola Oscar.
Al igual que Cañones, no entiendo el resultado que esperas. Pero si en algún momento deseas almacenar como número real la cadena '1.540,65', al momento de la conversión, va a tener que tener el formato '1540.65' sí o sí. Ya que ese es el formato de representación interna que admite Delphi (y los lenguajes que conozco). Como lo muestres es otro cantar... En el foro C++ Builder se trato un tema similar: Error de conversion. Probá de este modo:
Ejemplo de llamada: Pero como te dije arriba no alcanzo a entender lo que buscas... Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
|||
|
|||
Ecfisa,
Gracias por tu respuesta y las otras de los demás usuarios del foro Trataré de replantear mi problema, es posible que no haya sabido explicarme. Tengo una pequeña aplicación y recientemente tuve que crear una forma para colocar datos para la impresión de un cheque a través de edit, no se guarda nada en la base de datos, es solo para pasar esa información a un formulario de qreport5 y posteriormente imprimir esa info en un cheque. La cifra que ingresa el usuario en el edit, digamos 1.567,40 por ejemplo, yo la debo pasar una función para que se convierta a su expresión equivalente en letras o monto escrito como cuando haces un cheque que tienes que escribir el monto también en letras, bien?, la función de monto escrito trabaja perfectamente, el problema que tengo es convertir el texto del edit en un valor tipo float o real para poder pasar la información a la función de monto escrito. Si uso StrToFloat no me acepta el punto de de mil, pareciera que solo acepta la coma de los decimales y si uso VAL me acepta el punto de Mil pero no me toma en cuenta los decimales a pesar de que estoy usando una variable de tipo Real en la función VAL. He buscado en internet y no he podido encontrar nada al respecto y también aquí, por eso decidí preguntar. Yo no soy un programador muy experimentado, tal vez para otros sea algo muy sencillo pero no he logrado hacerlo :| Antes me dijeron que no colocara el punto en el edit, pero esa solución no es viable ya que la cifra tiene que llegar al formulario del qreport con su punto de forma que salga impresa en el cheque. Sin embargo que ahora que me indicas que delphi tiene que tratar esos valores SIN el punto, es decir, 1567,40 entonces me pregunto como voy después a colocar el punto en la posición apropiada si lo quito según lo que me explicas? de todas voy a usar las instruccíones que me colocaste a ver que tal de cualquier forma muchas gracias y escribo luego de hacer las pruebas
__________________
Oskar |
#12
|
||||
|
||||
Hola Oscar.
Cita:
Cita:
Un saludo y tenenos al tanto de como lo vas solucionando.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#13
|
|||
|
|||
Buenos días Ecfisa,
Ya está resuelto, lo que hice fue copiar el contenido del edit en una variable aparte a la cual le quité el punto con la el procedimiento Delete y la función POS que me mostraste, modificándolas un poco y posteriormente con el resultado obtenido se lo pude pasar a la función de monto escrito a través de StrToFloat. El monto ingresado por el usuario no lo toqué de forma que permaneciera siempre con su punto y pasara tal cual al formulario del qreport y eso fue todo: Delete(Cifra,Pos('.',Cifra),1); MontoEscrito(StrToFloat(Cifra)); Gracias por la ayuda y por el tiempo tomado Saludos
__________________
Oskar |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Hay alguna función ya hecha para comprobar si un texto se puede convertir a número? | noob | Varios | 7 | 05-12-2008 01:44:24 |
Dos decimales en un Edit | RoyTan | Varios | 8 | 03-02-2008 16:38:44 |
Número con decimales | blueicaro | OOP | 5 | 01-11-2007 11:16:40 |
Numero con dos decimales | zvf | OOP | 9 | 07-04-2006 20:27:06 |
Convertir decimales a radianes | Picard | C++ Builder | 6 | 05-06-2004 11:43:47 |
|