Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-09-2005
ZRR ZRR is offline
Miembro
 
Registrado: jun 2005
Posts: 39
Poder: 0
ZRR Va por buen camino
Question Problema con Float en Firebird

Que tal, buen dia.

Tengo un problema con un Campo tipo Float en Firebird.

Cuando inserto un valor en el campo de la forma (TDBEdit) por ejmplo 20.1 al guardar el registro en la Base de datos guarda el valor 20.1000003814697, alguien sabe a que se debe o como puedo solucionarlo? hay alguna función que en Firebird que me permita formatear el número al guardarlo o al realizar el select?

Muchas gracias
Saludos
Responder Con Cita
  #2  
Antiguo 30-09-2005
Fernando Fernando is offline
Miembro
 
Registrado: ago 2003
Posts: 77
Poder: 21
Fernando Va por buen camino
Hola:

Revisa la función RoundTo

Saludos
Responder Con Cita
  #3  
Antiguo 03-10-2005
ZRR ZRR is offline
Miembro
 
Registrado: jun 2005
Posts: 39
Poder: 0
ZRR Va por buen camino
Thumbs up Solución...

La funcion RoundTo, funciona bien desde Delphi, pero mi problema era que necesitaba formatearlo desde el select de la base de datos.

Encontré 2 soluciones posibles:

1. Realizar un cast al campo: select cast(campoFloat as numeric(9,2)) as result, campo 2, campo 3...

2. Cambiar el tipo del campo en la tabla a numeric(9,2).

Opte por la segunda opción ya que la primera aunque funciona, necesitaba hacer muchos cambios en los querys a la tabla.

Muchas gracias.

Saludos
Responder Con Cita
  #4  
Antiguo 05-04-2007
Avatar de dajaji
dajaji dajaji is offline
Miembro
 
Registrado: ago 2006
Posts: 10
Poder: 0
dajaji Va por buen camino
Presicion Talvez?

Primera se que el tema es del año pasado pero, Tengo el mismo problema,
uso delphy7, firebird1.5 y el tipo de dato a usar es float, que tambien se redondea mal o se guarda con un monton de decimales. ej meto 20 y me guarda como 19.99999869590453

bueno yo habilite en un IBtable cada field y en el field de tipo float le cambie la propiedad presicion de 15 que era por defecto a 7.

LA cuestion es que no se si esto es lo correcto, pero ya no me redondea un simple numero. y me muestra bien todos los numeros.
Responder Con Cita
  #5  
Antiguo 05-04-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Se sabe que los FLOATS funcionan así.

Debes usar Numeric(10,2) o decimal(10,2), siempre en Dialecto 3 para que guarde el número exacto.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 17-04-2007
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Bueno yo tube algunos probles con los numeric debido a como hace slso calculo s y con respecto a la precicion hay que tenr mucho cuidado por que esto trbajan de uan manera un poco delicada. Por lo cual decidi usar double prescion y no he tenedo esos problemas que estas teniendo.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:41:00.


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
Copyright 1996-2007 Club Delphi