error de calculo del sql server???

18/12/2003 - 09:50 por reo | Informe spam
tengo dos campos

importe money
descuento real

cuando hago

select importe*(100-isnull(descuento,0))

siendo el campo descuento=0 y el campo importe84270

me dice que el resultado es 1.8842701E+8 o lo que es lo mismo 1884270.1

es decir me ha añadido un 0.1 de la nada.

supongo que es debido a que es una operacion entre money y real

lo he evitado con convert(money,importe*(100-isnull(descuento,0))) y sale
bien.

pero ¿es esta la solucion definitiva o hay otra mejor?

muchas gracias
 

Leer las respuestas

#1 Liliana Sorrentino
18/12/2003 - 13:12 | Informe spam
Hola,
Los datos de tipo real o float te proporcionan resultados aproximados. Te
recomendaría utilizar un decimal o numérico para realizar operaciones
matemáticas.
En los BOL el tópico "Utilizar datos float y real" te explica más en
detalle.
Saludos... Liliana.

"reo" escribió en el mensaje
news:
tengo dos campos

importe money
descuento real

cuando hago

select importe*(100-isnull(descuento,0))

siendo el campo descuento=0 y el campo importe84270

me dice que el resultado es 1.8842701E+8 o lo que es lo mismo 1884270.1

es decir me ha añadido un 0.1 de la nada.

supongo que es debido a que es una operacion entre money y real

lo he evitado con convert(money,importe*(100-isnull(descuento,0))) y sale
bien.

pero ¿es esta la solucion definitiva o hay otra mejor?

muchas gracias


Preguntas similares