2015-01-26 3 views
1

모든 십진수 값이 반올림된다는 요구 사항이 있으므로 SQL에서 ROUND라는 내장 함수를 사용했습니다.십진수 값이 .6 이상인 경우 반올림합니다.

그러나 십진수 값의 0.5 이하가 반올림되지 않는이 요구 사항이 있습니다. 나는 이것에 대해 연구했지만 내 관심사와 관련된 결과를 찾을 수 없습니다. 다음은

는 예상 된 결과

SELECT ROUND(200.521231,0) --- 200.000000 
SELECT ROUND(200.436231,0) --- 200.000000 
SELECT ROUND(-200.436231,0) --- -200.000000 
SELECT ROUND(200.621231,0) --- 201.000000 

해야 내가 MS-SQL 서버를 사용하고

+0

어떤 DB 엔진을 사용합니까? –

+0

나는 MS SQL을 사용하고있다 – Chris

+0

나를 위해'201'을 반환한다 –

답변

3

할 수있는 사소한 것입니다

@x는 소수점 값이
SELECT ROUND(@x -0.1,0) 

@x가 음수가되도록 허용 된 경우 반올림합니다.

SELECT IF(@x>0, ROUND(@x -0.1,0), ROUND(@x +0.1,0)) 
+0

음수 값은 어떨까? – Arvo

+0

답변 해 주셔서 감사합니다. 다시 한번 감사드립니다. – Chris

관련 문제