Q&A

  • 델파이 연산오류??
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
    StringGrid1.cells[1,1]:='7.00';
    StringGrid1.cells[2,1]:='134.21';
    StringGrid1.cells[3,1]:='-127.21';

    StringGrid1.cells[4,1]:=(floattostr(strtofloat( StringGrid1.cells[1,1])- strtofloat( StringGrid1.cells[2,1])  -strtofloat( StringGrid1.cells[3,1])))

end;

요거 실행하면 결과가 0 이 안나오고 -6.93889390390723E-18 이런값이 나옵니다.
델파이 5,7로 해도 오류결과가 나오네요..

무슨 이유일까요?

1  COMMENTS
  • Profile
    최용일 2005.11.28 17:44
    안녕하세요. 최용일입니다.

    오류가 아닙니다.

    -6.9 * 10의 -18승이면 거의 0에 가까운 수이네요...

    컴퓨터상의 실수표현이나 실수연산은 어떤한 컴파일러든지 오차가 없을수가 없습니다.

    FloatToStr에서 사용되는 extended형은 유효자리수가 19~20이네요...

    ^^ 항상 즐코하세요...