다른 프로 시저 내에서 저장 프로 시저를 호출해야하는 연습 과제를 진행 중입니다. 호출되는 프로 시저는 단순히 두 개의 숫자를 나눕니다. 그러나 결과는 반올림 된 것처럼 보입니다.10 진수 형식의 SQL에서 반올림 방지
연습 문제에서 5.0을 10.0으로 나눈 결과는 1입니다. 결과는 분명 0.5 여야합니다. 목표는 DECIMAL 유형을 변경하지 않고 출력을 올바르게 표시하는 것입니다.
어떤 도움을 주시면 감사하겠습니다GO
CREATE PROCEDURE uspDivide2Numbers
@decValue1 AS DECIMAL
,@decValue2 AS DECIMAL
,@decResult AS DECIMAL OUTPUT
AS
SET NOCOUNT ON
SELECT @decResult = @decValue1/@decValue2
GO
CREATE PROCEDURE uspCallAnotherStoredProcedure
AS
SET NOCOUNT ON
DECLARE @decResult AS DECIMAL
EXECUTE uspDivide2Numbers 5.0, 10.0, @decResult OUTPUT
SELECT @decResult AS decResult
GO
uspCallAnotherStoredProcedure
, 내가 정말 왜 처음부터 소수 값의 라운드, 아마 내 말에 문제가 그래서 이해가 안 : 여기
는 코드입니다.
'DECIMAL'에 대한 정밀도를 지정하지 않는 이유가 있습니까? –