Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Distorsion de datos obtenidos de una consulta (https://www.clubdelphi.com/foros/showthread.php?t=59099)

richisaurio 12-08-2008 23:25:03

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.

droguerman 13-08-2008 14:38:05

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.

__hector 14-08-2008 18:57:46

Exacto,

Si el datatype de la columna es numeric, puedes especificarle la precision, tipo NUMERIC(10, 2) u otro, segun conveniencia.


La franja horaria es GMT +2. Ahora son las 03:46:33.

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