Q&A

  • Incompatible types: 'Integer' and 'Extended' 에러
입력된 데이터를 계산하는 과정입니다.
입력배열변수인 IP변수에 저장된 데이터를 200이하일때는 매출액의 10%를 매출수당으로,300이하일땐 15%를 매출수당으로 400이하일땐 매출액의 18%를 매출수당으로 그 이상일땐 19%를 매출수당으로 주는데 제가 한 코딩에 다음과 같은 에러메시지가 나옵니다.
아무리 생각해도 어디가 문제인지 몰라서 이렇게 급한 마음에 질문을 던집니다.

[Error] Unit1.pas(140): Incompatible types: 'Integer' and 'Extended'


//월매출수당
  m:=0;                                <-- m은 위에서 integer로 설정했음.
  a:=StrToInt(IP[N,6]);           <--a는 위에서 integer로 설정했음(스트링으으로 저장된 IP배열변수를
  if a<=200 then                      간단히 하기위해 a에 할당함
     m:=int(a*0.1)                  
  else                                   <-- 이곳부터 에러표시 나옴
    if a<=300 then
       m:=int(a*0.15)
    else
      if a<=400 then
         m:=int(a*0.18)
      else
        m:=int(a*0.19);
1  COMMENTS
  • Profile
    홍성락 2002.06.07 14:45

    hsr////////////////////////////////////////////////////////////////
    int함수는 Extended형이라 정수형 변수에는 맞지 않습니다.
    헬프에서 보시면 Int(123.456)는  123.0 인 실수입니다.
    따라서정수로 변환하시려면 Round나 Trunc등의 함수를 사용해 보세요