책 내용 질문하기
[Section 18 프로시저 작성] .Value와 Val()
도서
2021 시나공 컴퓨터활용능력 1급 실기
페이지
255,256
조회수
708
작성일
2021-01-16
작성자
탈퇴*원
첨부파일

기출 따라잡기 문제1의 3번 중 2번째 ▶

txt국어, txt영어, txt수학의 값을 이용하여 평균을 계산하는 프로시저 코드를

(txt국어.Value + txt영어.Value + txt수학.Value)/3

라고 입력하면 다음과 같이 이상한 결과가 나옵니다.

 

 

앞에 무작정따라하기 기본 문제에서 금액을 계산하는 프로시저 코드에서는

txt수량.Value * txt단가.Value

처럼 .Value를 이용해도 계산이 제대로 수행되는데 왜 이 평균을 계산하는 프로시저 코드에서는 Val()를 이용해야만 제대로 된 계산을 수행하는지 잘 이해가 가지 않습니다.

 

위의 예시들을 가지고 .Value와 Val()의 차이점과 각각의 쓰임에 대해 설명해주실 수 있을까요?

답변
2021-01-19 10:42:31

(txt국어.Value + txt영어.Value + txt수학.Value)/3 

 

와 같이 입력하면 

 

국어 80

영어 90

수학 100

 

으로 입력한 경우

 

8090100 으로 값을 연결해서 표시하게 됩니다. 

 

이 값을 3으로 나누면 2696700 로 표시가 되네요. 


컨토롤명.value 라는 해당 컨트롤의 값을 뜻하는 것인데 + 가 연결로 처리가 되어 그렇게 표시되는 것입니다. 


val 은 받은 값을 숫자로 나타내기 위해 사용하는 것으로 


숫자값으로 변경 된 후에는 


80+90+100 으로 계산한 후 /3 을 수행 할 수 있는 것입니다. 


아래 설명을 참고해 주세요. 


val은 문자로 받은 데이터을 숫자로 나타낼때 쓰이는 것입니다.


하지만 수량이나 단가는 대부분 숫자로 입력을 받습니다. 

 

문자로 입력이 된다 하더라도 숫자의 형식을 가지고 있기 때문에 계산이 가능 합니다.


만약 val을 쓰지 않고도 계산이 가능 하다면 val을 사용 하지 않으 셔도 됩니다.

물론 사용 하셔도 되구요.

지시사항에 val를 꼭 사용 하라고 되어 있지 않고, val을 사용 하지 않아도 계산이 가능 하다면 val를 사용 하시지 않으셔도 됩니다.

 

value 는 값을 뜻하는 것입니다. 

 

VALUE를 붙이지 않아도 정상적으로 실행된다면 붙이지 않아도 됩니다. 

 

폼에 입력된 데이터를 워크시트에 입력할 때 VALUE를 붙이면 숫자는 수치 데이터, 텍스트는 텍스트 형식, 날짜는 날짜 형식으로 입력되는데, 붙이지 않으면 모두 텍스트 형식으로 입력 되기때문에 데이터 형식을 맞춰주는 작업을 해야 합니다. 

 

실제 시험에서 지시사항에 별다른 설명이 없었다면 둘 중 어느것을 사용하시든 정확한 결과가 나오면 정답으로 인정 될 것 입니다.

 

 

좋은 하루 되세요.

  • 관리자
    2021-01-19 10:42:31

    (txt국어.Value + txt영어.Value + txt수학.Value)/3 

     

    와 같이 입력하면 

     

    국어 80

    영어 90

    수학 100

     

    으로 입력한 경우

     

    8090100 으로 값을 연결해서 표시하게 됩니다. 

     

    이 값을 3으로 나누면 2696700 로 표시가 되네요. 


    컨토롤명.value 라는 해당 컨트롤의 값을 뜻하는 것인데 + 가 연결로 처리가 되어 그렇게 표시되는 것입니다. 


    val 은 받은 값을 숫자로 나타내기 위해 사용하는 것으로 


    숫자값으로 변경 된 후에는 


    80+90+100 으로 계산한 후 /3 을 수행 할 수 있는 것입니다. 


    아래 설명을 참고해 주세요. 


    val은 문자로 받은 데이터을 숫자로 나타낼때 쓰이는 것입니다.


    하지만 수량이나 단가는 대부분 숫자로 입력을 받습니다. 

     

    문자로 입력이 된다 하더라도 숫자의 형식을 가지고 있기 때문에 계산이 가능 합니다.


    만약 val을 쓰지 않고도 계산이 가능 하다면 val을 사용 하지 않으 셔도 됩니다.

    물론 사용 하셔도 되구요.

    지시사항에 val를 꼭 사용 하라고 되어 있지 않고, val을 사용 하지 않아도 계산이 가능 하다면 val를 사용 하시지 않으셔도 됩니다.

     

    value 는 값을 뜻하는 것입니다. 

     

    VALUE를 붙이지 않아도 정상적으로 실행된다면 붙이지 않아도 됩니다. 

     

    폼에 입력된 데이터를 워크시트에 입력할 때 VALUE를 붙이면 숫자는 수치 데이터, 텍스트는 텍스트 형식, 날짜는 날짜 형식으로 입력되는데, 붙이지 않으면 모두 텍스트 형식으로 입력 되기때문에 데이터 형식을 맞춰주는 작업을 해야 합니다. 

     

    실제 시험에서 지시사항에 별다른 설명이 없었다면 둘 중 어느것을 사용하시든 정확한 결과가 나오면 정답으로 인정 될 것 입니다.

     

     

    좋은 하루 되세요.

  • 관리자
    2021-01-20 18:28:22

    1. * 는 곱하기나 and 로 인식 되는데 

     

    + 는 더하기, or 외에 연결 하는 것도 되는 것 같습니다. 

     

    이 부분은 프로그램을 만들 때 그렇게 적용되게 되어 있어서 그런 결과가 나온 것 같습니다. 

     

    2. 우리는 숫자로 입력했지만 프로그램이 받아들이기에는 문자였을 수도 있습니다. 

     

    그래서 사용자가 정확하게 숫자라고 지정하기 위해 val 을 사용하는 것이죠. 

     

    val 을 사용하지 않아도 프로그램에서 숫자로 인식 한다면 사용하지 않아도 되는 것입니다. 

     

    3. 네 정확하게 숫자로 입력되어야 하는 부분이라면 모두 사용하는 것이 더 정확하겠죠. 

     

    좋은 하루 되세요. 

  • *
    2021-01-19 11:41:08

    아직 이해 가지 않는 것들이 있습니다.

     

    1. (txt국어.Value + txt영어.Value + txt수학.Value)/3 에서 "+"는 연결로 처리돼서 잘못된 값이 나온 것이라고 하셨는데요. (예를 들어 3+3+3/3 -> 333/3 = 111)

        "+" 대신 "*"로 바꾸면 곱셉은 제대로 인식하고 연산합니다. (예를 들어 3*3*3/3 = 9)

        그리고 기출문제 4-2에서 "할인수강료 = 수강료 - (수강료*0.1)"을 계산할 때 코드도 Val()을 쓰지 않고도 숫자로 인식하고 뺄셈과 곱셈을 제대로 계산했습니다.

        혹시 계산 코드 작성 시 덧셈만 유의해서 꼭 Val()을 써야한다는 규칙이라도 있나요?

     

    2. 수량이나 단가는 대부분 숫자로 입력을 받기 때문에 문자로 입력된다고 해도 숫자 형식을 갖고 있어서 Val() 없이도 계산이 가능하다고 설명하셨는데요.

       점수도 제가 생각하기에는 숫자로 입력했다고 보는데 textbox 속성 중에 어떤 것은 숫자로 된 문자로 인식하고 다른 어떤 것은 숫자 그 자체로 인식하는 설정이 있나요?

     

    3. .Value만 써도 될 지, .Value를 생략해도 될 지, Val()를 써야 할 지 도저히 모르겠으면 계산 코드 작성 시 Val(.Value)를 다 써버리는게 차라리 나을까요?

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.