DECLARE @dividendo int, @divisor int set @dividendo = 50; set @divisor = 12; SELECT (@dividendo/@divisor) GOEl resultado para esta simple operación no es el deseado, puesto que retorna 4 en lugar de 4.166
DECLARE @dividendo int, @divisor int set @dividendo = 50; set @divisor = 12; SELECT (cast(@dividendo as decimal(18,6))/cast(@divisor as decimal(18,6))) GOAhora si obtenemos el dato que realmente necesitamos.
Saludos.
tengo problemas divido dos valores tipo Decimal(27/13), al hacer la división de estos dos números, el resultado después de la coma solo muestra 11 decimales cuando debería mostrar 13 decimales.
ResponderEliminarAlguna sugerencia ?
Quizá tu problema sea la precisión que asignas tanto las variables dividendo y divisor como a la variable resultado. Mira en el siguiente ejemplo indico que la variable @z tendrá un numero total de digitos seran 18 y solo 4 de esos corresponderán a los decimales despues de la coma.
EliminarDECLARE @x DECIMAL, @y DECIMAL, @z DECIMAL(18,4)
SET @x = 27;
SET @y = 13;
SET @z = @x/@y;
SELECT @z;
Si quieres tener 13 decimales entonces la variable de ser declarada así:
DECLARE @z DECIMAL(18,13)
Acá encuentras la información al respecto en msdn http://msdn.microsoft.com/es-es/library/ms187746.aspx
Saludos.