아래와 같이 실수를 S1 = S2 형태로 비교하면 같은 숫자인데도 같지 않다고 계산됩니다.

SameValue 등의 함수를 이용하면 같다고 계산됩니다.

 

uses
  System.Math;

procedure TForm1.Button1Click(Sender: TObject);
var
  S1, S2: Single;
begin
  S1 := 0.3;
  S2 := 0.1;
  S2 := S2 / 10.0;      // should be 0.01
  S2 := S2 * 10.0;      // should be 0.1 again
  S2 := S2 + S2 + S2;   // should be 0.3

  if S1 = S2 then
    ShowMessage('True')
  else
    ShowMessage('False');

  if SameValue(S1, S2) then
    ShowMessage('True')
  else
    ShowMessage('False');
end;
 

부동소수점 숫자에 대해 잘 소개한 글(영문)이 있어 안내합니다.

http://rvelthuis.de/articles/articles-floats.html

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 36106
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 34548
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 35572
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 41939
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 43825
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 37735
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 61785
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 196742
1395 N 윈도우와 맥 개발 시작을 위한 파이어몽키 코스북: 무료 다운로드 제공(385페이지) 관리자 2013.04.05 152447
1394 ComPort(시리얼 통신) 컴포넌트 설치안내 [11] file 험프리 2013.12.04 116347
1393 [REST API] REST 기반 파일 업로드와 다운로드 구현하기 험프리 2020.08.31 86783
1392 델파이 튜토리얼 자습서 이용 안내 관리자 2014.09.01 72101
1391 이 달의 기술자료 - 2014년 11월 험프리 2014.10.13 54269
1390 이 달의 기술자료 - 2014년 6월 file 험프리 2014.06.05 50517
1389 Find the O/S Language Type c2design 2014.07.30 48911
1388 RAD Studio Resource Center 박병일 2012.01.26 46821
1387 CD-ROM 열고 닫기 박병일 2011.12.22 44867
1386 [Android] 폰번호 가져오기 [1] 타락천사 2014.09.05 38765
1385 이 달의 기술자료 - 2014년 12월 file 험프리 2014.11.26 32631
1384 RAD Studio XE6 Update1 발표 [1] Humphery 2014.06.20 29594