바람따라 님이 쓰신 글 :
: 정수, 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 은 어떤행동을 하게될가요 ? 수행하는게 명확해지지 않았으니
제대로 수행을 못하는거죠
|