Q&A

  • 소수점에서 반올림하는 함수는....
델파이에서 소숫점 몇자리에서 자르는것은 Str Function으로 처리가 가능한데

마지막 소수점자릿수에서 반올림을 할수는 없나요.

Ex)12.2346 -> 12.235

3  COMMENTS
  • Profile
    이준해 1999.09.16 09:57
    김명호 wrote:

    > 델파이에서 소숫점 몇자리에서 자르는것은 Str Function으로 처리가 가능한데

    > 마지막 소수점자릿수에서 반올림을 할수는 없나요.

    > Ex)12.2346 -> 12.235



    아래 함수를 쓰세요.



    function TForm1.roundedReal(inParam: real; roundPoint: Integer): Real;

    begin

    result := intpower(0.1, roundPoint) *

    Round(InParam * intpower(10, roundPoint));

    end;

    inParam = 12.2346, roundPoint = 3, result = 12.235 가 될 겁니다.



    도움이 되시길.



  • Profile
    이정욱 1999.09.15 19:58
    만약 1.05를 1.1 로 하신다면 y := Round(x + 0.05);

    하시면 됩니다.

    즉, 12.2346 이면 y := Round(x+0.0005) 하시면 되죠.



    자리수만큼의 소수점뒤의 숫자의 갯수를 가져와서 그만큼 에서 하나를 뺀 '0'을 붙이고 마지막에 '5'를 붙여서 실수(real)로 만든다음 위처럼 처리하면 됩니다.



    음.. 괜히 말이 삥삥 돌아서 표현된것 같은데...



    도움이 되셨기를.....



    김명호 wrote:

    > 델파이에서 소숫점 몇자리에서 자르는것은 Str Function으로 처리가 가능한데

    > 마지막 소수점자릿수에서 반올림을 할수는 없나요.

    > Ex)12.2346 -> 12.235

  • Profile
    김명호 1999.09.15 21:24
    이정욱 wrote:

    > 만약 1.05를 1.1 로 하신다면 y := Round(x + 0.05);

    > 하시면 됩니다.

    > 즉, 12.2346 이면 y := Round(x+0.0005) 하시면 되죠.

    >

    > 자리수만큼의 소수점뒤의 숫자의 갯수를 가져와서 그만큼 에서 하나를 뺀 '0'을 붙이고 마지막에 '5'를 붙여서 실수(real)로 만든다음 위처럼 처리하면 됩니다.

    >

    > 음.. 괜히 말이 삥삥 돌아서 표현된것 같은데...

    >

    > 도움이 되셨기를.....

    >

    > 김명호 wrote:

    > > 델파이에서 소숫점 몇자리에서 자르는것은 Str Function으로 처리가 가능한데

    > > 마지막 소수점자릿수에서 반올림을 할수는 없나요.

    > > Ex)12.2346 -> 12.235



    round function은 return이 longint형이라서 Round(12.2346 + 0.0005)를 하면

    12가 return이 됩니다.

    이건 아닌것 같거든요.