Q&A

  • Type 변환
안녕하세여..



count0, count1, count0_1, count1_1 : integer;

이렇게 변수 선언을 하구여..



count0_1:=count0/(temp.Count-1)*100;

count1_1:=count1/(temp.Count-1)*100;



이렇게 해
6  COMMENTS
  • Profile
    김경식 2000.09.07 04:34
    count0_1:=count0/(temp.Count-1)*100; 이 부분에서 / 대신에 div로 바꾸어 주시면 되구요..

    혹은 count0_1 := Round(count0/(temp.Count-1)*100);도 한 방법이 되겠네요..



    /로 계산된 값은 Real형으로 값을 돌려주고 div로 계산된 값은 Integer로 값을 돌려준다고 합니다.



    근데, Round에 버그가 있다던데... 뭘까...?



    heimdal wrote:

    > 안녕하세여..

    >

    > count0, count1, count0_1, count1_1 : integer;

    > 이렇게 변수 선언을 하구여..

    >

    > count0_1:=count0/(temp.Count-1)*100;

    > count1_1:=count1/(temp.Count-1)*100;

    >

    > 이렇게 해
  • Profile
    최용일 2000.09.07 20:25
    안녕하세요. 델파이세상(http://www.freechal.com/delphiworld)의 최용일입니다.



    그거 버그 아녜요... 우리가 흔히 알고 있는 수학적인 반올림과는 다를뿐이죠. 홀수번째



    반올림하는 건데 CPU에서 지원하는 겁니다. 우리가 알고 있는 반올림보다 더 정확한



    값을 구해주죠... 직접 테스트해보시면 우리가 알고 있는 반올림보다 훨씬 더 정확하



    다는 것을 알 수 있을겁니다.



    ^^ 항상 즐코하세요.



    김경식 wrote:

    > count0_1:=count0/(temp.Count-1)*100; 이 부분에서 / 대신에 div로 바꾸어 주시면 되구요..

    > 혹은 count0_1 := Round(count0/(temp.Count-1)*100);도 한 방법이 되겠네요..

    >

    > /로 계산된 값은 Real형으로 값을 돌려주고 div로 계산된 값은 Integer로 값을 돌려준다고 합니다.

    >

    > 근데, Round에 버그가 있다던데... 뭘까...?

    >

    > heimdal wrote:

    > > 안녕하세여..

    > >

    > > count0, count1, count0_1, count1_1 : integer;

    > > 이렇게 변수 선언을 하구여..

    > >

    > > count0_1:=count0/(temp.Count-1)*100;

    > > count1_1:=count1/(temp.Count-1)*100;

    > >

    > > 이렇게 해
  • Profile
    성더기 2000.09.07 18:09
    김경식 wrote:

    > count0_1:=count0/(temp.Count-1)*100; 이 부분에서 / 대신에 div로 바꾸어 주시면 되구요..

    > 혹은 count0_1 := Round(count0/(temp.Count-1)*100);도 한 방법이 되겠네요..

    >

    > /로 계산된 값은 Real형으로 값을 돌려주고 div로 계산된 값은 Integer로 값을 돌려준다고 합니다.

    >

    > 근데, Round에 버그가 있다던데... 뭘까...?



    이거 말씀하시는거 아닌가여?

    일반적으로 round 함수를 반올림함수로 알고 있져..

    근데 round(4.5)하면 모가 나올까염...^^

    4가 나옴니다..

    round(4.4) --> 이것두 4

    round(5.5) --> 이건 6

    round(5.4) --> 이건 5

    round(2.5) --> 이건 2

    일케됩니다..

    맞나? ^^;;



    >

    > heimdal wrote:

    > > 안녕하세여..

    > >

    > > count0, count1, count0_1, count1_1 : integer;

    > > 이렇게 변수 선언을 하구여..

    > >

    > > count0_1:=count0/(temp.Count-1)*100;

    > > count1_1:=count1/(temp.Count-1)*100;

    > >

    > > 이렇게 해
  • Profile
    heimdal 2000.09.07 05:57


    count_1:= count1 div (temp.count-1);

    count_0:= count0 div (temp.Count-1);



    이렇게 했더니만..Access violation..이라는 에러가 막 뜨는데여??

    책을 찾아봤더니 div에 대한 설명이 나오는데..제목에 기초적인 연산자소개라고 씌여있더군여..

    이론..기초적인 연산자도 모르다뉘~~~



    김경식 wrote:

    > count0_1:=count0/(temp.Count-1)*100; 이 부분에서 / 대신에 div로 바꾸어 주시면 되구요..

    > 혹은 count0_1 := Round(count0/(temp.Count-1)*100);도 한 방법이 되겠네요..

    >

    > /로 계산된 값은 Real형으로 값을 돌려주고 div로 계산된 값은 Integer로 값을 돌려준다고 합니다.

    >

    > 근데, Round에 버그가 있다던데... 뭘까...?

    >

    > heimdal wrote:

    > > 안녕하세여..

    > >

    > > count0, count1, count0_1, count1_1 : integer;

    > > 이렇게 변수 선언을 하구여..

    > >

    > > count0_1:=count0/(temp.Count-1)*100;

    > > count1_1:=count1/(temp.Count-1)*100;

    > >

    > > 이렇게 해
  • Profile
    박용철 2000.09.07 07:48
    div는 정수형으로 계산됩니다만 백분율에선 100% 이외에는 전부 0으로 나옵니다.

    (10 div 50) * 100 의 경우 (10 div 50)은 0.2지만 정수형으로 0이되며 100을 곱해도 0입니다.

    Round나 Trunc를 사용하십시오.

    질문의 내용이 실제코딩의 전부입니까?

    혹시 Progress Bar처리 아닙니까?

    코딩 그대로 질문해 주세요.

    그럼, 이만.





    heimdal wrote:

    >

    > count_1:= count1 div (temp.count-1);

    > count_0:= count0 div (temp.Count-1);

    >

    > 이렇게 했더니만..Access violation..이라는 에러가 막 뜨는데여??

    > 책을 찾아봤더니 div에 대한 설명이 나오는데..제목에 기초적인 연산자소개라고 씌여있더군여..

    > 이론..기초적인 연산자도 모르다뉘~~~

    >

    > 김경식 wrote:

    > > count0_1:=count0/(temp.Count-1)*100; 이 부분에서 / 대신에 div로 바꾸어 주시면 되구요..

    > > 혹은 count0_1 := Round(count0/(temp.Count-1)*100);도 한 방법이 되겠네요..

    > >

    > > /로 계산된 값은 Real형으로 값을 돌려주고 div로 계산된 값은 Integer로 값을 돌려준다고 합니다.

    > >

    > > 근데, Round에 버그가 있다던데... 뭘까...?

    > >

    > > heimdal wrote:

    > > > 안녕하세여..

    > > >

    > > > count0, count1, count0_1, count1_1 : integer;

    > > > 이렇게 변수 선언을 하구여..

    > > >

    > > > count0_1:=count0/(temp.Count-1)*100;

    > > > count1_1:=count1/(temp.Count-1)*100;

    > > >

    > > > 이렇게 해
  • Profile
    이경문 2000.09.07 07:26
    temp의 타입이 뭔가여?

    class인 경우에 temp객체를 생성시켰는지 확인해 보세요.



    heimdal wrote:

    >

    > count_1:= count1 div (temp.count-1);

    > count_0:= count0 div (temp.Count-1);

    >

    > 이렇게 했더니만..Access violation..이라는 에러가 막 뜨는데여??

    > 책을 찾아봤더니 div에 대한 설명이 나오는데..제목에 기초적인 연산자소개라고 씌여있더군여..

    > 이론..기초적인 연산자도 모르다뉘~~~

    >

    > 김경식 wrote:

    > > count0_1:=count0/(temp.Count-1)*100; 이 부분에서 / 대신에 div로 바꾸어 주시면 되구요..

    > > 혹은 count0_1 := Round(count0/(temp.Count-1)*100);도 한 방법이 되겠네요..

    > >

    > > /로 계산된 값은 Real형으로 값을 돌려주고 div로 계산된 값은 Integer로 값을 돌려준다고 합니다.

    > >

    > > 근데, Round에 버그가 있다던데... 뭘까...?

    > >

    > > heimdal wrote:

    > > > 안녕하세여..

    > > >

    > > > count0, count1, count0_1, count1_1 : integer;

    > > > 이렇게 변수 선언을 하구여..

    > > >

    > > > count0_1:=count0/(temp.Count-1)*100;

    > > > count1_1:=count1/(temp.Count-1)*100;

    > > >

    > > > 이렇게 해