Ver Mensaje Individual
  #6  
Antiguo 10-08-2011
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Reputación: 16
lmpadron Va por buen camino
Hola amigos, gracias por su ayuda

Cita:
Empezado por DarkMan Ver Mensaje
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.
DarkMan lo que uso es C++Builder y al parecer el problema era que estaba medio mareado, después de escribir ese post me fui a la casa y al regresar al otro día vi tu post y el de los otros amigos que me han ayudado, al re abrirlo ya me permitía realizar perfectamente la conversión.
Gracias de todas formas


Usando el ejemplo que me postearon (sin convertir tanto por gusto) me devuelve este error

Código:
        if (DBEdit1->Text == "" ||
            DBEdit2->Text == "" ||
            DBEdit3->Text == "" ||
            DBComboBox1->ItemIndex == -1){}
        else
        {
                DBEdit4->Field->AsFloat = DBEdit15->Field->AsFloat +
                                           DBEdit16->Field->AsFloat +
                                           DBEdit21->Field->AsFloat;
        }
Código:
---------------------------
Debugger Exception Notification
---------------------------
Project PROYECTO.exe raised exception class EConvertError with message ''' is not a valid floating point value'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------
Al principio pensé que talves estaba realizando el cálculo antes de que los Edits obtubieran los valores, asi que quite todos los calculos de los eventos donde estaban programados y los puse en un boton, me cerciore de que la información estubiera en los DBEdit y despues di click y .... bueno ahi tienen el resultado !!!

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;
  if (DBEdit1->Text == ""){a = 0;}else{a = StrToFloat(DBEdit1->Text);}
  if (DBEdit2->Text == ""){b = 0;}else{b = StrToFloat(DBEdit2->Text);}
  if (DBEdit3->Text == ""){c = 0;}else{c = StrToFloat(DBEdit3->Text);}

  DBEdit4->Text = FloatToStr(a + b + c);
me da este resultado
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
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________

Última edición por lmpadron fecha: 10-08-2011 a las 22:32:08.
Responder Con Cita