배움터  
  HOME > 배움터 > Daily Tip
Daily Tip

제품:   Access 버전:   공통
검색어:   반올림, 올림, 버림, RoundEx
제목:   반올림, 올림, 버림
     
 

새 페이지 1

  STEP> 따라하기

※ 오늘 Daily Tip은 염기웅님이 제공해주신 내용입니다.

엑셀에서는 반올림 함수, 올림 함수, 버림 함수가 각각 존재합니다. 따라서 사용자는 원하는 값으로 변환할 수 있습니다. 반면에 액세스의 경우 반올림 함수만 존재합니다. 그래서 올림이나 버림의 경우 적용하기가 상당히 까다롭지요. 오늘은 반올림, 올림, 버림의 기능을 적용하는 방법을 알아보도록 하겠습니다.(사용버전: 공통)

모듈을 하나 만든 다음 다음의 VBA 코드를 삽입하기 바랍니다.

Function RoundEx(dblNumber As Double, lngNumberDigitAfterDecimal As Long, strMethod As String) As Double 

작성일: 2002-1-22
작성자: 염기웅
기능: 원하는 자리수에서 숫자를 올림, 버림, 반올림해서 반환한다.'

dblNumber : 반올림할 수
lngNumberDigitAfterDecimal :
반올림할 자리수
       ***
기본적으로 소수점 이하 자리수를 말한다
       ***
음수일 경우 소수점에서 왼쪽방향의 자리수를 말한다. , 정수부분을 말한다.
strMethod :
올림, 버림, 반올림인지를 결정한다.
       *** RoundNormal :
반올림
       *** RoundUp :
올림
       *** RoundDown :
버림 

Dim dblRoundValue As Double
    Select Case strMethod
        Case "RoundNormal"
            dblRoundValue = 0.5000001
        Case "RoundDown"
            dblRoundValue = 0
        Case "RoundUp"
            dblRoundValue = 0.9
    End Select

    RoundEx = Int((dblNumber * 10 ^ lngNumberDigitAfterDecimal) + dblRoundValue) / 10 ^ lngNumberDigitAfterDecimal

End Function

RoundEx 함수를 이용하면 올림, 버림, 반올림을 원하는 데로 적용할 수 있습니다.

사용법 RoundEx(적용할_숫자값, 자리수, 방법)
방법

 

RoundNormal – 반올림

RoundUp –
올림

RoundDown –
버림

1. 소수점 이하에서 반올림, 올림, 버림

1) 반올림
예를 들어, 3.141592 라는 수를 소수점 둘째 자리에서 반올림 한다면 3.14가 됩니다. 이 때는 다음과 같이 적용하면 됩니다.

RoundEx(3.141592, 2, "RoundNormal")

2) 올림
3.141592 를 소수점 둘째 자리에서 올림하면 3.15가 됩니다.

RoundEx(3.141592,2,"RoundUp")

3) 버림
3.141592
를 소수점 둘째 자리에서 버림하면 3.14가 됩니다.

RoundEx(3.141592,2,"RoundDown")

2. 정수부분에서 반올림, 올림, 버림

이 함수에서 자리수를 입력할 때 1, 2, 3 과 같은 수는 소수점 이하를 지칭합니다. 따라서 정수부분에서의 반올림, 올림, 버림은 다른 값을 적용해야 합니다. 0의 자리는 -1, 10의 자리는 -2, 100의 자리는 -3 으로 지정하면 됩니다.

1) 반올림
3840
을 정수부분 세번째 자리(100의 자리)에서 반올림하면 4000이 됩니다.

RoundEx(3840,-3,"RoundNormal")

2) 올림
3840
을 정수부분 세번째 자리(100의 자리)에서 올림하면 4000이 됩니다.

RoundEx(3.141592,-3,"RoundUp")

3) 버림
3840
을 정수부분 세번째 자리(100의 자리)에서 버림하면 3000이 됩니다.

RoundEx(3.141592,-3,"RoundDown")

이제 기본적인 RoundEx 함수의 사용방법은 이해하셨으리라고 생각됩니다.

쿼리에서는 어떻게 적용해야 할까요? 샘플 파일을 첨부하였으니 참고하기 바랍니다. [샘플파일 다운받기] 

실제로 액세스에서 사용할 때는 함수에 특정 값을 넣기 보다는 다음 그림과 같이 필드 명을 부여하게 됩니다.

다음 그림은 여러 숫자에 대해 소수점 이하 두 번째 자리에서 반올림, 올림, 버림을 수행한 결과입니다.

다음 그림은 여러 숫자에 대해 정수부분 세 번째 자리(100의 자리) 에서 반올림, 올림, 버림을 수행한 결과입니다.

어떻습니까? 앞으로 반올림, 올림, 버림에 대해서 걱정할 필요는 없겠죠? 잘 활용하시기 바랍니다.