Q&A

  • [급해요!]나누기에서 소숫점 고정하기는 어떻게...?
프로그램을 하다보니 몇몇 정정할 부분이 생겨 이렇게 질문을 드립니다.

변수는 이렇게 정의 했구요

pijetsu1 :integer;

pijetsu2 :integer;

pijetsu3 :double;

프로그램 루핑을 돌리는데.

if fieldbyname('totiqty').asinteger=0 then

begin

pijetsu1:=fieldbyname('totcqty').asinteger;

pijetsu3:=(pijetsu1 div 1)*100;

end;

if fieldbyname('totiqty').asinteger>=1 then

begin

pijetsu1:=fieldbyname('totcqty').asinteger;

pijetsu2:=fieldbyname('totiqty').asinteger;

pijetsu3:=(pijetsu1 / pijetsu2)*100;

end;

여기서 두번째 if 문에서 pijetsu1의 값이 699 이고 pijetsu2의 값이 5200 일때

pijetsu3 의 값은 13.442307692..이런식으로 나옵니다.



근데 제가 구하고자 하는 값은 소수점 첫째자리까지입니다..

어떤방법이 있을까요..?





2  COMMENTS
  • Profile
    조건일 2001.05.12 20:41
    그냥 젤 쉬운방법은여...



    pijetsu3:= StrToFloat(Format('%.1f',[(pijetsu1 / pijetsu2)*100]));



    이구여....



    쫌 꼰다면....



    pijetsu3:= trunc(((pijetsu1 / pijetsu2)*100) * 10) / 10;



    정도가 되지 않을까요.....



    넘 쉽게봤나?



    즐프하셔여....





    델초보 wrote:

    > 프로그램을 하다보니 몇몇 정정할 부분이 생겨 이렇게 질문을 드립니다.

    > 변수는 이렇게 정의 했구요

    > pijetsu1 :integer;

    > pijetsu2 :integer;

    > pijetsu3 :double;

    > 프로그램 루핑을 돌리는데.

    > if fieldbyname('totiqty').asinteger=0 then

    > begin

    > pijetsu1:=fieldbyname('totcqty').asinteger;

    > pijetsu3:=(pijetsu1 div 1)*100;

    > end;

    > if fieldbyname('totiqty').asinteger>=1 then

    > begin

    > pijetsu1:=fieldbyname('totcqty').asinteger;

    > pijetsu2:=fieldbyname('totiqty').asinteger;

    > pijetsu3:=(pijetsu1 / pijetsu2)*100;

    > end;

    > 여기서 두번째 if 문에서 pijetsu1의 값이 699 이고 pijetsu2의 값이 5200 일때

    > pijetsu3 의 값은 13.442307692..이런식으로 나옵니다.

    >

    > 근데 제가 구하고자 하는 값은 소수점 첫째자리까지입니다..

    > 어떤방법이 있을까요..?

    >

    >

  • Profile
    김양우 2001.05.12 20:41
    이렇게 하면 될것 같은데



    pijetsu3:=round((pijetsu1 / pijetsu2)*100 * 10)/10;



    델초보 wrote:

    > 프로그램을 하다보니 몇몇 정정할 부분이 생겨 이렇게 질문을 드립니다.

    > 변수는 이렇게 정의 했구요

    > pijetsu1 :integer;

    > pijetsu2 :integer;

    > pijetsu3 :double;

    > 프로그램 루핑을 돌리는데.

    > if fieldbyname('totiqty').asinteger=0 then

    > begin

    > pijetsu1:=fieldbyname('totcqty').asinteger;

    > pijetsu3:=(pijetsu1 div 1)*100;

    > end;

    > if fieldbyname('totiqty').asinteger>=1 then

    > begin

    > pijetsu1:=fieldbyname('totcqty').asinteger;

    > pijetsu2:=fieldbyname('totiqty').asinteger;

    > pijetsu3:=(pijetsu1 / pijetsu2)*100;

    > end;

    > 여기서 두번째 if 문에서 pijetsu1의 값이 699 이고 pijetsu2의 값이 5200 일때

    > pijetsu3 의 값은 13.442307692..이런식으로 나옵니다.

    >

    > 근데 제가 구하고자 하는 값은 소수점 첫째자리까지입니다..

    > 어떤방법이 있을까요..?

    >

    >