A vueltas con decimales..

03/01/2008 - 12:21 por Masta | Informe spam
Alguien me puede explicar, por qué si hago esto en el Query Analyzer:

Select 30.87*14
El resultado es 432.18

...y si hago un select con esta operación cogiendo el valor 30.87 de
un campo "precio" money y el valos 14 de un campo "cantidad" int, me
da esto:

select precio*cantidad from tabla
El resultado es 432.1240

¿?¿?¿?¿?¿?

Muchas gracias a quien me haga ver la luz.. porque ahora mismo estoy
en la oscuridad más absoluta.

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
03/01/2008 - 12:33 | Informe spam
Hola Masta,

No he conseguido reproducir el comportamiento que describes (en SQL Server 2000):

DECLARE @t TABLE (
Precio money,
Cantidad int
)
INSERT @t VALUES (30.87, 14)
SELECT 30.87 * 14 AS Total1
SELECT Precio * Cantidad AS Total2 FROM @t
________________________________________

Total1

432.18

(1 filas afectadas)

Total2

432.1800

(1 filas afectadas)
_______________________________________

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#2 Masta
03/01/2008 - 12:47 | Informe spam
Gracias por la respuesta Rubén...

Es que cada vez estoy más asombrado..

Precio = 30.87
Cantidad = 1

Select precio*cantidad from tabla

30.87 * 1 = ¡¡¡ 30.8660 !!!

Esto último ya me ha dejado totalmente fuera de juego... No tengo ni
idea qué puede estar sucediendo.. he recomprobado los campos y son
MONEY e INT.

Muchas gracias.
Respuesta Responder a este mensaje
#3 Rubén Vigón
03/01/2008 - 12:55 | Informe spam
Hola de nuevo, Masta

En lugar de probar con:

SELECT Precio * Cantidad FROM Tabla

Envíanos el resultado de la siguiente consulta:

SELECT Precio, Cantidad, Precio * Cantidad AS Total FROM Tabla

(tengo la impresión de que tu campo Precio realmente contiene 30.8660 en lugar de 30.87 y que se trate de un problema de formateo del campo «money» del lado del cliente)

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#4 Masta
03/01/2008 - 13:26 | Informe spam
Rubén.. me acabo de dar cuenta de que la cosa va por ahí... No sé cómo
ha llegado el valor del campo a ser 30.8660, pero ese es el valor que
tiene..

Voy a investigar..

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