![]() |
restar o sumar 2 dbedits.text
hola q tal, miren quiero realizar la resta de 2 dbedits.text. en los cuales estan datos numericos de campos, en realidad datos money y guardarlo en una variable
if dbedit4.text<dbedit10.text then a:=dbedit10.text-dbedit4.text dbedit5:=a; la variable la declare como string, esta bien o deberia ser float?, se puede hacer resta? o debo guardar los dbedit en variables? grax |
Hola
No se la necesidad de la variable, pero:
Otro directo:
Saludos |
restar o sumar 2 dbedits.text
hola mira, me da error de que $75,00 is not a valid float value
ese monto se asigna a un al db edit10 cuando slecciono un registro de la grilla. el campo es money, por habra sido el error? muchas gracias |
Aclarando solamente que los contenidos de un edit, aun cuando sean numeros (digitos) son de tipo String, por lo cual es necesario convertirlos a un tipo numerico para poder realizar las operaciones matematicas.El resultado de la operacion matematica se debera volver a convertir para exhibirlo al usuario.
cualquier caracter que no sea numero es evaluado por la funcion como error ($, ','). Deberas eliminar esos caracteres de tus cadenas antes de convertir a un valor numerico (numerico no es lo mismo que monetario) |
Hola
Normalmente es por que la coma no la ve como decimal. Eso se arregla desde el panel de control en configuracion regional. Lo que me extraña es que lo presente con el signo de dolares $, si es asi, no tengo idea. Lo unico que se me ocurre es cambiar el campo a double. Saludos |
hola vi en otros foros q podia servir esto para eliminar $
Delete(Cadena,1,1);//elimina el primer caracter ascii de cadena Label1.Caption:=Cadena; o Label1.Caption := StringReplace(Cadena, '$', '', [rfReplaceAll]);en lugar de label iria el dbedit1.text? luego se asigna solo? no entiendo lo de las '' es el espacio despues del $? solo quiero sacar el $ para luego sumar o restar luego qedaria en float? gracias perdon lo vi en este foro a bueno despues tengo q restar como me dijeron antes if dbedit4.text < dbedit10.text then begin dbedit5.text:= FloatToStr(StrToFloat(dbedit10.text) - StrToFloat(dbedit4.text)); end; seria asi? |
Hola
La idea es buena, solo que tienes que tener en cuenta que se trata de DBEdits, no de EDits. Esto lo comento por que al hacer un replace lo hara en el DBEdit y podra sr un problema en la BD. Para solucionar eso simplemente usa variables que contengan el dato, asi:
Revisa el ejemplo. Saludos |
gracias ya me salio lo hice como dijiste al ultimo, muchas gracais
|
La franja horaria es GMT +2. Ahora son las 12:12:20. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi