SQL Server - Problema con función Round

 
Vista:

Problema con función Round

Publicado por rdzulc (8 intervenciones) el 28/02/2008 21:25:35
Hola:

Tengo un problema con la función round. Yo necesito tener un campo float con exactamente 2 decimales y lo que me hace el round es por ejemplo si tengo 7888.50 me lo deja en 7888.5, pero yo quiero que tenga los 2 decimales (7888.50); o por ejemplo si el numero no tiene decimales 5690 que me lo deje en 5690.00.

¿Alguien me podria decir como hacerlo?

De antemano gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con función Round

Publicado por Isaias (3308 intervenciones) el 29/02/2008 00:17:49
Debe ser forzosamente un FLOAT, en SQL Server existe un campo tipo DECIMAL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con función Round

Publicado por rdzulc (8 intervenciones) el 29/02/2008 16:34:40
No, no debe ser un campo float a fuerza, pero no conocia ese tipo de campo, no tendras un ejemplo o alguna referencia?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con función Round

Publicado por Isaias (3308 intervenciones) el 29/02/2008 20:32:11
Bueno, tienes la ayuda en linea:

http://msdn2.microsoft.com/en-us/library/aa257103.aspx

decimal[(p[, s])] y numeric[(p[, s])]

Números de precisión y escala fijas. Cuando se utiliza la precisión máxima, los valores permitidos están comprendidos entre - 10^38 +1 y 10^38 - 1. Los sinónimos de SQL-92 para decimal son dec y dec(p, s).

p (precisión)

Especifica el número máximo total de dígitos decimales que se pueden almacenar, a la izquierda y a la derecha del separador decimal. La precisión debe ser un valor comprendido entre 1 y la precisión máxima. La mayor precisión que se puede especificar es 38. La precisión predeterminada es 18.

s (escala)

Especifica el número máximo de dígitos decimales que se pueden almacenar a la derecha del separador decimal. La escala debe ser un valor comprendido entre 0 y p. La escala sólo se puede especificar si se especifica la precisión. La escala predeterminada es 0; por tanto, 0 <= s <= p. Los tamaños máximos de almacenamiento varían según la precisión.

DECLARE @MyDecimal DECIMAL(7,2)

12345.67
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con función Round

Publicado por rdzulc (8 intervenciones) el 03/03/2008 20:00:01
Ya resolvi el problema, lo que queria es que apareciara el numero con dos decimales pero sin el punto, asi que lo único que hice fue aplicar primero la función round y el resultado lo multiplique por cien lo que daba algo asi:

18.007

ROUND(18.004, 2) = 18

18*100 = 1800 que es para mi prograna el equivalente a 18.00
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar