Discussion:
[OT] Parte entera y decimal en SQL server
(demasiado antiguo para responder)
Rubén Castro
2005-05-30 09:51:40 UTC
Permalink
¿Cómo puedo sacar la parte entera y la parte decimal de un float en
SQLserver?

Por ejemplo:

ENT(128.15) = 128
DEC(125.15) = 15

Un saludo.
Alex Martínez
2005-05-30 10:04:26 UTC
Permalink
Post by Rubén Castro
¿Cómo puedo sacar la parte entera y la parte decimal de un float en
SQLserver?
ENT(128.15) = 128
DEC(125.15) = 15
Un saludo.
Para la parte entera puedes usar la función Round:
select round(123.45,0,1)
123.00

Si además quieres que te aparezca sin decimales, puedes usar Cast:
select cast(round(123.45,0,1) as integer)
123

Para la parte decimal, restas lo anterior al número completo:
select 123.45-round(123.45,0,1)
.45
--
Saludos,
Alex
[MS-MVP Visual Basic]
Rubén Vigón
2005-05-30 10:08:13 UTC
Permalink
Puedes usar «CAST», «CONVERT», «ROUND», «CEILING» o «FLOOR»; por ejemplo:

DECLARE @num float
SET @num = 123.456
SELECT CAST(@num AS int), ROUND(@num, 0), CEILING(@num), FLOOR(@num)

[...] La función CEILING devuelve el menor entero que sea mayor o igual que la expresión numérica dada. La función FLOOR devuelve el mayor entero que sea menor o igual que la expresión numérica dada. Por ejemplo, dada la expresión numérica 12,9273, CEILING devuelve 13, y FLOOR devuelve 12. El valor de retorno tanto de FLOOR como de CEILING tiene el mismo tipo de datos que la expresión numérica de entrada

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvp-access.com

Reunión de participantes del foro microsoft.public.es.vb (2005)
http://www.mvp-access.com/rubenvigon/reunion.asp

Continúe leyendo en narkive:
Loading...