만능문답


결론 -- 댓글에 많은 도움을 받았습니다. 감사합니다. 궁극적으로는 다른 언어로 옮겨가기로 결정했고, 이 문제는 일단 땜빵으로 돌아갔습니다.


컴퓨터가 이진법으로 계산을 하기때문에, 소수 계산을 할때 십진법으로는 도저히 이해가 안가는 엉뚱한 짓을 할 때가 있습니다. 지금 여쭙는 것이 그 중 하나인데, 원인은 알지만 해결책이 없나 해서 질문 올립니다.


문제의 소스코드:


#include<stdio.h>

#include<math.h>


void main()

{

        double a;

        a=1000.0*1.001;

        printf("%g %g\n",a,floor(a));

}


요걸 cc -lm 해서 컴파일 한 다음 수행하면..


1001 1001


하고 출력하길 기대하는데.. 1001 1000 하고 출력 합니다. -_-;; 그래서.. 이 floor 에 문제가 있군 하고는..


#include<stdio.h>


void main()

{

        double a;

        a=1000.0*1.001;

        printf("%g %d\n",a,(int)a));

}


해도 결과는 똑같습니다. -_-;; 추측하는 것은 저 0.001 이 이진수로 변환될때 무한 소수로 변환되어서.. 결과가 1001에 아주 쪼끔 모자라는 상황인 듯 한데요. 해결 방법이 없을까요. 웃기는건 float로 낮추면 문제없이 동작합니다. 그렇지만 제가 하는 일이 double precision이 필요한 일이라 답이 안되는듯 합니다. 뭔가 말도 안되는 실수를 했다기엔 너무 간단한 소스코드라.

번호 제목 작성자 작성일 조회
공지 게시판 성격에 맞지 않는 글은 예고없이 삭제합니다. [6] 星夜舞人 2011.10.10 209697
공지 [공지] 만능문답 게시판을 이용하는 분들을 위한 당부 말씀 [3] iris 2010.03.16 189849
5857 동영상 파일에서 프레임 너비*높이 vs. 데이터 속도/ 총비트 전송률 등 중 어느 것이 더 시각적으로 영향이 큰지요? [9] 야호 10.05 3863
5856 아이폰 6s 고장난 것 처럼 보이기 [12] 상호아빠 10.03 585
5855 중국산 아닌 대용량 클라우드가 있을까요? [6] 엘레벨 09.22 577
5854 블랙마트 알파가 폐쇄됐나요? [5] 야호 09.06 1395
5853 컴퓨터 조립시에.... [7] 상호아빠 09.02 488
5852 노트북 CPU 업글에 관하여 [9] 엘레벨 09.01 642
5851 전화기 - 타블렛 간 메시징 앱? [3] 엘레벨 09.01 375
5850 오래된 신디사이저 마더보드를 구할 수 있는 사이트? [5] 엘레벨 08.25 385
5849 문의드립니다. 알리익스프레스에서 아두이노 관련 부품? 을 구입하려하는데 [6] 도원아빠 08.24 370
5848 FreeNas 사용시 하드 성능을 많이 깎아먹습니까? [19] 엘레벨 08.21 494
5847 고도는 높으나, 험난하지 않은 등산 코스 [6] 쿠후^^ 08.10 1377
5846 구글이 망한다면 [6] 영진 08.10 421
5845 KPUG.kr이 안전하지 않음으로 나오네요. [11] 수퍼소닉 07.03 1191
5844 하드가 꽉찰때까지 파일을 계속해서 복사할 수 있는 프로그램이 있을까요? [18] 엘레벨 06.27 760
5843 CD에 백업한 한글 파일명 문제-옛날 윈도와 Windows10 [11] 나도조국 06.26 1089
5842 에버노트 대체 앱이 필요한데요 [7] 엘레벨 06.24 1302
5841 사설 VPN의 보안 - 유료 VPN 사용시 [6] 낙하산 06.14 490
5840 라우터 문의 [9] 상호아빠 06.09 418
5839 아젠더 앱 문의 [5] file 팬디 06.01 432
5838 리눅스 파일 관리자에서 RAW화일 보는 방법이 궁굼합니다. [1] 상호아빠 05.31 575

오늘:
12
어제:
908
전체:
15,193,938