C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[64527] Re:Re:Re:Re:Re:double 변수 비교가 왜 안될까요? ㅠㅠ
심성현 [sim51177] 1299 읽음    2011-06-08 00:21
cc 님이 쓰신 글 :
: 바람따라 님이 쓰신 글 :
: : 정수, Currency Type(C++에서는 어떤 타입인지를 몰라서 ^^;;) 이 아닌이상 아래와 같은 비교결과는 당연합니다.
: : 계산속도 향상을 위한 방편으로 일정정도의 정확도를 무시했다고 해야할까요...
: : 기본적인 보정을 하지 않는 이상 아래와 같은 결과로 나옵니다.
: : 예전 엑셀에서도 똑같은 일로 누군가 테클을 걸었고 비베, MS C++도 같은 결과가 나오는 걸로 알고 있습니다.
: : 당연히 델파이도 똑같은 결과구요,.
: :
: : Mins 님이 쓰신 글 :
: : : cc 님이 쓰신 글 :
: : : : Mins 님이 쓰신 글 :
: : : : :
: : : : : double d1 = 10.90;
: : : : : double d2 = 10.80;
: : : : : 
: : : : : if (d1 - d2 == 0.1) {
: : : : :     ShowMessage("0.1 차이입니다");
: : : : : }
: : : : : 

: : : : :
: : : : : 위의 코드가 뭐가 틀린건지 도저히 모르겠네요...
: : : : : 왜 메시지 박스가 뜨질 않는지 이해가 안갑니다..ㅜㅜ
: : : :
: : : : double d3 = d1 -d2;
: : : : if(d3 == 0.1)
: : : :     ShowMessage("0.1차이입니다");
: : : : 이렇게나
: : : : if((d1-d2) == 0,.1)
: : : :     ShowMessage("0.1 차이입니다");
: : : :
: : : : 이렇게해보시던가요
: : :
: : :
: : : 답변 감사드립니다^^
: : : 다른 방법으로 하는 방법은 알고 있는데 궁금한건 저 코드가 왜 안되는지가 이해가 안가서 질문 올린거랍니다.
:
:
: 산술이든 비교식이든  실행순서를 생각하면 오른쪽에서 왼쪽으로 수행하죠
: 그러므로 오르쪽인 d2 == 0.1부터 실행하고
: 왼쪽인  d1 은 어떤행동을 하게될가요 ?  수행하는게 명확해지지 않았으니
: 제대로 수행을 못하는거죠

잘못알고 계십니다.
산술연산자와 비교연산자가 섞여 있을때는 연산자 우선순위에 의해서 산술연산자가 먼저 연산됩니다.
더하기와 곱하기가 섞여있으면 곱하기가 먼저 연산되는것처럼요.

+ -

관련 글 리스트
64510 double 변수 비교가 왜 안될까요? ㅠㅠ Mins 1191 2011/06/03
64511     Re:double 변수 비교가 왜 안될까요? ㅠㅠ cc 1448 2011/06/03
64523         Re:Re:double 변수 비교가 왜 안될까요? ㅠㅠ Mins 1483 2011/06/07
64524             Re:Re:Re:double 변수 비교가 왜 안될까요? ㅠㅠ 바람따라 1432 2011/06/07
64526                 Re:Re:Re:Re:double 변수 비교가 왜 안될까요? ㅠㅠ cc 2098 2011/06/07
64527                     Re:Re:Re:Re:Re:double 변수 비교가 왜 안될까요? ㅠㅠ 심성현 1299 2011/06/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.