select @some_val_in_percents = Round((@total_val/100) * @some_val, 0)
이 결과는 반올림 될 계산되었거나 (@total_val/100)
은 반올림되고 @some_val
을 곱한 것입니까?
select @some_val_in_percents = Round((@total_val/100) * @some_val, 0)
이 결과는 반올림 될 계산되었거나 (@total_val/100)
은 반올림되고 @some_val
을 곱한 것입니까?
% 값이 잘못 계산 된 것 같습니다. 여기에 내가 같은 것으로 기대 내용은 다음과 같습니다
@some_val * 100/@total_val
ROUND()
기능으로, 그렇지 않은 결과의 일부에, 표현의 최종 결과에 따라 행동 할 것이다. 따라서 먼저 표현식이 완전히 평가 된 다음
ROUND()
이 결과에 적용됩니다.
참고도 (경우에 당신이 이미 알고하지 않은 경우) 나누기 연산자의 피연산자가 모두 정수 경우, SQL 서버 가에을 내림 것 분할의 결과 즉, 정수 나눗셈을 수행 할 것 심지어 가장 가까운 정수 전에ROUND()
이 적용됩니다. 이를 피하려면 적어도 하나의 피연산자가 정수가 아닌지 확인하십시오. 이 같은 Transact-SQL ROUND()
필요하다 또한
ROUND(@some_val * 100.0/@total_val, 2)
참고 번째 인수 (정밀).
@superM :'ROUND (166/100 * 2, 0)'* 나를 위해 2를 돌려 줬다 (2008 R2). –
죄송합니다, 당신 말이 맞아요. 나는 그 결과를 뒤섞었다)))) – superM
Round
은 내용을 평가 한 후에 계산됩니다.
따라서 (@total_val/100) * @some_val
은 반올림됩니다.
왜 그냥 사용해 보지 않으시겠습니까? –
어쩌면 누군가가 나보다 더 나은 방법을 말해 줄 것이다.))))))) – superM