Covertir float int str
Hola amigos
Estoy contruyendo un programilla y me he encontrado un problemilla no vi por ningun lado un StrToFloat . El programilla debe manejar valores de tipo float pero tengo que almacenarlos como string, asi mismo me pasa con los int y es casi una locura Código:
DBEdit1->Text = FloatToStr(variable + StrToInt(DBEdit2->Text)); Como puedo convertirlo ??????? Gracias de antemano |
En la unidad SysUtils existe una función llamada "StrToFloat".
Deberías comentarnos la versión de Delphi que estás usando, ya que sí deberías poder realizar dicha conversión. Un saludo. |
Hola Impadrón.
Lo que te sugiere DarkMan es totalmente correcto, aún en Builder C++. Ejemplo: Código:
|
La verdadera pregunta aquí es, porque tienes que almacenar los datos en string? Tal vez si nos explicas el porqué de esto podríamos darte una solución, que te evitara tanta conversión.
Pd. No es natural que un dato se almacene como lo que no es (y ojo porque digo natural, no que este mal). |
Cita:
Lo que sucede es que a veces son imposiciones sobre ejercicios para practicar el uso de ... Pero tenes toda la razón, es más simple y eficiente trabajar en forma directa: Código:
... |
Hola amigos, gracias por su ayuda
Cita:
Gracias de todas formas Usando el ejemplo que me postearon (sin convertir tanto por gusto) me devuelve este error Código:
Código:
--------------------------- Como nota agregar que los DBEdit están enlazados a un Query y los campos que este Query usa de la BD están definidos en el MySQL como VARCHAR o sea texto. Alguna Idea ??? por otra parte en lo referente a la convertidera de un lado para otro encontré un error, al principio creba unas variables de tipo Float despues convertia de String a Float (el valor de los DBEdit a las variables) realizaba el calculo y después convertia el resultado de FLoat a String y se lo asignaba al DBEdit que debía contener el valor final. En algún lugar en todo este reguero algo esta pasando mal. El resultado que regresaba al DBEdit final era visiblemente diferente del resultado que debiera llegar por ejemplo: Usando los siguientes valores: DBEdit1 = 225.00 DBEdit2 = 5.4 DBEdit3 = 75.00 y con este codigo Código:
float a,b,c; DBEdit4 = 305.400000095 Esto es correcto ?? Una última pregunta hay alguna forma de definir cuantos numero decimales (o sea después de la ,) puedo usar en el Float. O sea alguna forma de definir que mi variable de tipo Float solo use 6 lugares después de la coma Gracias de antemano |
Hola impadrón.
Aunque no tiene que ver con el error ,pero para no complicar tanto la sintáxis, probá el condicional de este modo: Código:
if (DBEdit1->Text != "" && DBEdit2->Text != "" && DBEdit3->Text != "" En cuanto a tu segunda consulta como está relacionada con lo anterior, te sugiero que verifiques el contenido de los DBEdits. Por ejemplo: Código:
double d; Saludos.:) |
Cita:
EL operador logico && (AND) en el ejemplo que me das hace lo mismo que el || (OR) que uso yo, en tu ejemplo escribes dentro del if y yo en el mio dejo el if en blanco y escribo dentro del else (me gusta mas la forma en que tu lo escribiste !!!) Código:
Lo que sucede es que para evitar las conversiones estamos llamando a FIELD, si aun no se ha guardado nada en la BD entonces nos dara error porque FIELD que pertenece a la BD esta en blanco (o al menos eso creo). Código:
DBEdit1->Field->AsFloat Asi que voy a tener que regresar a las conversiones !!!! por lo que me preocupa el hecho de que no se efectuaran correctamente como explique en mi post anterior Ahora voy a revisar el segudo codigo que me posteo el amigo ecfisa a ver si con el TRY se resuelve el problema. Gracias por tu ayuda hermano |
Hola amigos
Finalmente creo que ya tengo la solucion gracias a todos y en especial a ecfisa Código:
|
La franja horaria es GMT +2. Ahora son las 06:22:25. |
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