FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Redondear en un filtro TTable
Buenas a todos,
tengo un problema con un filtro. Tengo una tabla (TTable). Esta table tiene la siguiente estructura(codigo integer, nombre varchar(60), saldo NUMERIC(15, 3), resto NUMERIC(15, 3)). En mi aplicacion hay un momento en el que pongo un filtro a la tabla diciendo que solo muestre los registros cuando saldo<>resto. La tabla tiene los siguientes valores CODIGO NOMBRE SALDO RESTO 1 JUAN 13,03 13,03 2 PEPE 40,92 40,92 3 LUIS 119,24 119,24 4 MARIA 200,00 0,00 Tabla.filter:='saldo<>resto' Cuando le pongo el filtro, en lugar de mostrarme el codigo 4, me muestra los codigos 4, 1,3. Yo pienso que tiene que ser a causa de redondeos, podría redondear de alguna forma en el filtro. No puedo cambiar el componente ttable ya que mi aplicacion es bastante vieja y tendria que rehacerla entera. Muchas gracias por todo. PD.: utilizo delphi 7 y firebird 1.5 |
#3
|
|||
|
|||
pero así me filtrará dependiendo del registro en el que esté cuando active en filtro. Yo quiero que me filtre dependiendo del valor que tenga cada registro.
Gracias por contestar |
#4
|
||||
|
||||
Los flotantes tienen más decimales de lo que muestran, así que una condición de des/igualdad entre ellos, raramente se cumple.
Código:
Tabla.filter:='saldo - resto < 0.001' Igual el problema viene por el tabla.filter que solo pueda manejar floats.... Edito: igual tienes que ajustar más esa diferencia y usar 0.003 ó 0.004, porque aunque veas 13.03 puede que el valor real sea 13.028 ó 13.027 Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 28-11-2008 a las 16:56:42. |
#5
|
|||
|
|||
Muchas gracias, lo probaré. Utilizo dialecto 1.
La solucion que me he dado es la siguiente, he pasado un script a la tabla: update nomtabla set campo1=f_roundto(campo1,2),campo2=f_roundto(campo2,2) de esta forma con el filtro que yo ponia funciona, lo que pasa que me puede volver a pasar. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
redondear con dos decimales | JULIOCTORRESG | Varios | 6 | 27-09-2015 01:30:14 |
Redondear? | diniremix | Varios | 12 | 20-05-2006 00:18:12 |
Redondear + DBGrid1DrawColumnCell | jonmendi | Varios | 0 | 23-01-2006 12:04:01 |
Zeos y Redondear | jgutti | Internet | 0 | 25-04-2005 16:52:13 |
Redondear en Builder c++ | alt126 | C++ Builder | 3 | 04-01-2005 11:27:54 |
|