Delphi - Decimales

   
Vista:

Decimales

Publicado por Dario (29 intervenciones) el 21/10/2010 01:51:24
Eva: te envio la formula que uso para dividir
TEdit1.Text:=IntToStr(StrToInt(TEdit2.Text)div strtoint(TEdit3.text));

Ahora con lo que me habias respondido por el tema de que al hacer una operación matematica a un numero con decimal no me lo tomaba como tal y que debia ver la configuración de la pc; te comento que realice los paso que me dijiste y no me dio resultado.
La mano viene así: Cargo en un TEdit por ejemplo el 1.1 y lo grabo en la base de datos; hago lo mismo con un entero ejemplo 8, hasta aca todo bien ya q el el Form principal uso la sentencia DecimalSeparator:= '.'; El problema esta en lo siguiente: En un form aparte tengo un TEdit con el numero 2 y un TDBEdit por el cual llamo desde la base de datos a los num cargados (8 y 1.1). Cuando multiplico el TEdit con el TDBEdit me da un error (NO ES UN VALOR ENTERO VALIDO) cuando es un numero decimal el del TDBEdit (Ejemplo 2 x 1.1).

Por otro lado te agradezco la ayuda que me estas proporcionando Eva, me hes de mucha utilidad.
Gracias preciosa.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Decimales

Publicado por José Oronas (7 intervenciones) el 21/10/2010 17:57:01
Así es otra cosa...

TEdit1.Text:=FormatFloat('0.00', StrToFloat(TEdit2.Text) / strtoFloat(TEdit3.text));

por supuesto hay que controlar que el dividendo no sea cero porque te va a disparar una excepción o bien capturar la misma .
Ej :

Try
TEdit1.Text:=FormatFloat('0.00', StrToFloat(TEdit2.Text) / strtoFloat(TEdit3.text));
Except
TEdit1.Text := '-' ;
End ;

El editor con nombre TEDIT1 ??? , me parece raro, cuando pones un componente de tipo TEdit su nombre por defecto es Edit1 (2,3,4 etc) Sin la "T", a menos que lo hayas renombrado, por las dudas verificalo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Decimales

Publicado por Eva (484 intervenciones) el 22/10/2010 01:15:03
Te repito de nuevo, si pones el código que utilizas para multiplicar es mucho más fácil ver el error que estar adivinando lo que puede ocurrir.

¿Que base de datos utilizas?, ¿como guardas los datos en un campo numérico o en una cadena alfanumérica?, ¿si los guardas en una cadena los transformas a número al multiplicar con StrToInt?.
Si los transformas con StriToInt un buen truco para que no de error cuando el campo está vacio es poner esto
'0'+StrToInt(Edit1.Text)*'0'+StrToInt(Edit2.Text)
con ello el valor nunca te lo variará y no dará error cuando no haya ningún dato.

y no abras más hilos si es el mismo tema, sigue preguntando en este mismo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar