En la división directa de SQL Server de dos vueltas enteros entero par si el resultado debe ser el flotador. Hay un ejemplo más abajo para conseguirlo a través de:
--1--
declare @weird_number_float float
set @weird_number_float=22/7
select @weird_number_float
--2--
declare @weird_number_decimal decimal(18,10)
set @weird_number_decimal=22/7
select @weird_number_decimal
--3--
declare @weird_number_numeric numeric
set @weird_number_numeric=22/7
select @weird_number_numeric
--Right way
declare @weird_number float
set @weird_number=cast(22 as float)/cast(7 as float)
select @weird_number
Sólo último bloque devolverá el 3,14285714285714. A pesar del segundo bloque definido con precisión correcta, el resultado será 3.00000.
¿Qué tipo de datos es @weight? –
es un 'int': DECLARAR @weight INT – Roch