Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-08-2008
richisaurio richisaurio is offline
Miembro
 
Registrado: may 2008
Posts: 15
Poder: 0
richisaurio Va por buen camino
Exclamation Distorsion de datos obtenidos de una consulta

Hola, un saludo a toda la gente del foro =)

Estoy teniendo un problema con una tabla, la cree de la siguiente manera:

create table rango(
id_area varchar(3),
id_indicador varchar(3),
tipo char,
rango0 real,
rango1 real,
rango2 real,
rango3 real,
rango4 real,
primary key (id_area,id_indicador,tipo))

El problema es que al insertar valores en el atributo rango0, rango1, rango2, rango3 ó rango4 se distorsionan, por ejemplo intento colocar 0.85 al campo rango0 y en la base de datos se almacena como 0.8500002, y cuando quiero recuperar este dato me ocasiona errores pues, es un valor "inventado por el sql".
mi consulta es

select * from rango where id_area='a03' and id_indicador='i01' and tipo='F'

Me sale 0.8500002 en el campo rango0, y en los otros campos reales sucede lo mismo.

Traté de hacer esto
select round(rango0,2) from rango where id_area='a03' and id_indicador='i01' and tipo='F'

Y empeoró, me devolvió este resultado 0.84999999999999998

Espero me puedan dar un consejo de que puedo estar haciendo mal o cual puede ser el problema. Muchas Gracias anticipadamente.
Responder Con Cita
  #2  
Antiguo 13-08-2008
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
Esa "distorsión" viene dada en como se almacenan los valores de punto flotante, no es tan fácil por que hablamos de binario.

En vez de real prueba con decimal o numeric.
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 14-08-2008
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
Exacto,

Si el datatype de la columna es numeric, puedes especificarle la precision, tipo NUMERIC(10, 2) u otro, segun conveniencia.
__________________
Héctor Geraldino
Software Engineer
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
obtener campo de varios obtenidos de sql mediante un cursor jesusvp SQL 5 16-07-2007 20:35:57
Actualizar datos de una consulta pepitu .NET 3 02-03-2007 13:27:27
Consulta de datos cachedupdates Osorio Conexión con bases de datos 0 14-07-2005 16:10:23
Visualizar datos de una consulta SQL dsa132132 OOP 14 25-08-2004 12:06:34
Consulta con datos agrupados victorxata Firebird e Interbase 1 28-01-2004 12:19:41


La franja horaria es GMT +2. Ahora son las 19:47:44.


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