none
VBA 질문입니다 RRS feed

  • 질문

  • 비쥬얼베이직 모듈에서 이런 수식을 입력 했을 때,

    Option Explicit
    Sub 질문()
    Dim a As Integer, b As Integer
    a = 9.5
    b = 4.5
    MsgBox "a = " & a & "  b = " & b
    End Sub

    결과로 a = 10 , b = 4 가 나오는데

    둘다 반올림을 하면 b = 5 가 나와야 하는 것 아닌가요?

    b = 4 로 나오는 이유가 무엇 인가요??

    2014년 11월 4일 화요일 오전 2:15

답변

  • 반올림에는 2가지 종류가 있는데 스탠다드와 banker’s rounding 중 VB의 integer는  banker's rounding을 사용하네요.

    [참고자료]

    Integer 데이터 형식(Visual Basic)

    ' The valid range of an Integer variable is -2147483648 through +2147483647.
    Dim k As Integer
    ' The following statement causes an error because the value is too large.
    k = 2147483648
    ' The following statement sets k to 6.
    k = 5.9
    ' The following statement sets k to 4
    k = 4.5
    ' The following statement sets k to 6
    ' Note, Visual Basic uses banker’s rounding (toward nearest even number)
    k = 5.5

    제시해 드린 답변이 도움이 되었기를 바랍니다.
       
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다


    2014년 11월 6일 목요일 오전 8:34
    중재자