Se cambia de valor un dato al momento de guardarlo en la BD

06/02/2007 - 20:13 por Oscar | Informe spam
Que tal, tengo una pequeña duda:

En una aplicacion que estoy desarrollando necesito guardar datos de tipo
real en SQL Server, pero al momento de guardar este valor 0.9 en SQL
lo guarda como 0.89999998 y yo necesito que se guarde como 0.9, cabe
mencionar que si guardo el dato 0.81 ó 1.10 se guardan tal cual, el
único problema es cuando voy a guardar el valor 0.9.

Espero y alguien me pueda ayudar.

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
06/02/2007 - 21:11 | Informe spam
Oscar,

Si te fijas en los libros en linea, veras que este tipo de data es
aproximada y que no puede representarse todo el rango para este tipo.

Ejemplo:

select cast(0.9 as float) as c1
union all
select cast(0.663 as float)
union all
select cast(0.66 as float)
go

Crees que puedas usar el tipo de data NUMERIC o DECIMAL?

select cast(0.9 as numeric(8, 5)) as c1
union all
select cast(0.663 as numeric(8, 5))
union all
select cast(0.66 as numeric(8, 5))
go


AMB

"Oscar" wrote:


Que tal, tengo una pequeña duda:

En una aplicacion que estoy desarrollando necesito guardar datos de tipo
real en SQL Server, pero al momento de guardar este valor 0.9 en SQL
lo guarda como 0.89999998 y yo necesito que se guarde como 0.9, cabe
mencionar que si guardo el dato 0.81 ó 1.10 se guardan tal cual, el
único problema es cuando voy a guardar el valor 0.9.

Espero y alguien me pueda ayudar.

Muchas gracias.

Respuesta Responder a este mensaje
#2 Oscar
06/02/2007 - 21:20 | Informe spam
Alejandro Mesa escribió:
Oscar,

Si te fijas en los libros en linea, veras que este tipo de data es
aproximada y que no puede representarse todo el rango para este tipo.

Ejemplo:

select cast(0.9 as float) as c1
union all
select cast(0.663 as float)
union all
select cast(0.66 as float)
go

Crees que puedas usar el tipo de data NUMERIC o DECIMAL?

select cast(0.9 as numeric(8, 5)) as c1
union all
select cast(0.663 as numeric(8, 5))
union all
select cast(0.66 as numeric(8, 5))
go


AMB

"Oscar" wrote:

Que tal, tengo una pequeña duda:

En una aplicacion que estoy desarrollando necesito guardar datos de tipo
real en SQL Server, pero al momento de guardar este valor 0.9 en SQL
lo guarda como 0.89999998 y yo necesito que se guarde como 0.9, cabe
mencionar que si guardo el dato 0.81 ó 1.10 se guardan tal cual, el
único problema es cuando voy a guardar el valor 0.9.

Espero y alguien me pueda ayudar.

Muchas gracias.






Que tal muchas gracias por responder, ahora tomaré en cuenta el tipo
numeric.

Muchas gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida