PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2020/09/10 19:34:54
Name 와칸나이
Subject [질문] 컴퓨터에서 0.999...
컴퓨터는 무한한 소수점을 저장하지 못하잖아요?

소수점 저장에 한계가 있으니 실제로 저장된 binary 뜯어보면 0.999999999999987 이런 식일텐데

그렇다면 컴퓨터 메모리에 저장되는 0.999... 는 수학적으로 0.999... 가 아니란건데,

0.999... == 1 으로 처리하는 이유가


0.999... 가 1의 매크로로 되있어서 그런가요?

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
20/09/10 20:20
수정 아이콘
(수정됨) (부동소수점 연산으로 계산한다는 가정 하에) 0.999... 를 만들 때 계산 방법에 따라 우연히 1이 되었을 뿐 실제로 1이 되지 않는 경우도 만들 수 있습니다. 예를 들면

$ python
Python 3.7.7 (default, Jun 23 2020, 16:24:29)
[Clang 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/49*49
0.9999999999999999
>>> 1/49*49 == 1
False

그래서 보통은 실수 두 개를 비교할 때에는 두 숫자가 같은 (==) 것으로 비교하지 않고, 두 숫자의 차이가 오차범위 이내인지를 판별하는 것이 보통입니다.
와칸나이
20/09/10 20:51
수정 아이콘
애초에 컴퓨터에 저장되는 실수가 정확도가 떨어지니까 오차범위로 판단할 수 밖에 없겠네요.

두 소수가 같다 혹은 다르다를 규정하는 소수점 오차범위는 CPU에 정의된 부분인지 궁금증이 생기네요.
20/09/10 21:06
수정 아이콘
소수를 컴퓨터로 표현하는 방법이 표준으로 정해져 있고 (IEEE 754), 보통의 CPU의 경우 이것을 기준으로 구현되어 있습니다. 이 표준에 의하면 널리 쓰이는 64bit 자료형의 경우 2진법으로 53개의 유효숫자를 가질 수 있습니다. 즉 2진법으로 53개의 유효숫자(와 지수)가 같으면, 같은 숫자로 인식되는거죠.
와칸나이
20/09/11 11:38
수정 아이콘
오오 감사합니다. 표준이 있었군요!
이유진
20/09/10 20:23
수정 아이콘
부동소수점은 일단 정확하지 않습니다. C++ 은 정확도가 기본 6자리까지 일껀데요.
0.999999를 넘어가는 숫자부터 오차가 생겨서 1로 인식이 되는거 같습니다.
테스트해보니 0.9999998 == 1 도 값은 true네요.
20/09/10 20:24
수정 아이콘
이거보고 열심히 부동소수점 생각하다가 윈도 계산기의 꿋꿋함에 감탄하고 갑니다....
닉네임을바꾸다
20/09/10 21:34
수정 아이콘
뭐 거기에 일단 2진법이니...
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
150729 [질문] 저작권 관련 질문드립니다. (삭제예정) [1] 삭제됨5272 20/12/02 5272
150728 [질문] 안전문자 어떻게들 하시나요? [21] winside7566 20/12/02 7566
150727 [질문] 에어팟 프로를 세탁기에 돌렸습니다.(수리 문의) [4] 보메로8453 20/12/02 8453
150726 [질문] 싱크대 배수가 살짝 막히는 느낌인데 뭐가 좋을까요?? [5] 삭제됨6078 20/12/02 6078
150725 [질문] [육아] 저녁 8시~9시 막수때만 엄청 우는 아기 왜 그럴까요? [8] 라돌체비타8981 20/12/02 8981
150724 [질문] 아르바이트 주휴수당 문의입니다 [4] 나이스후니5268 20/12/02 5268
150723 [질문] 부작용이 생길 확률이 아주 낮은 백신이 나온다면... [5] 마르키아르5893 20/12/02 5893
150722 [질문] 오래된 와인 먹어도 되나요..? [6] 린 슈바르처8049 20/12/02 8049
150721 [질문] 엑셀 수식 질문 드립니다. [4] 불독맨션4878 20/12/02 4878
150720 [질문] 생애 최초 아이폰 구매 예정입니다.(안드폰에서 아이폰 넘어가신 분들의 조언 기다립니다.) [16] 빠나나5250 20/12/02 5250
150719 [질문] 보험사 조직에 대하여(지점, 설계사, 상품 등) [1] 흰둥4923 20/12/02 4923
150718 [질문] CJ대한통운 택배 업체만 거를 수 있는 방법이 있나요? [16] Leader'sDisaster7697 20/12/02 7697
150717 [질문] 서울 반영구눈썹이 저렴한 곳 추천부탁드립니다.. Grateful Days~5568 20/12/02 5568
150716 [질문] 이민 가기 좋은, 상대적으로 쉬운 나라는 어디가 있을까요? [7] LG의심장박용택7316 20/12/02 7316
150715 [질문] 간단한? 생활 수학 문제 질문 드립니다. [4] 호아킨4609 20/12/02 4609
150714 [질문] 음반 초동 [2] 김중혁5411 20/12/02 5411
150713 [질문] 롤 아카데미 계약 조건 질문입니다 [5] foraiur5457 20/12/02 5457
150712 [질문] 공유 프린트 관련 질문이 있습니다. [10] 시라노 번스타인5815 20/12/02 5815
150710 [질문] 다른 카드로 재결제 가능여부 질문입니다. [5] qwertyy5517 20/12/02 5517
150709 [삭제예정] 이사 비용과 이삿짐 보관료에 대해 문의드립니다. [12] 건투를 빈다9038 20/12/02 9038
150708 [질문] 국민들이 상호 감시/견제/신고하는 사회의 단점은 무엇인가요? [13] AKbizs6809 20/12/02 6809
150707 [질문] 컴퓨터 구매 관련 견적 [8] 구동매6888 20/12/02 6888
150706 [질문] 데탑 견적 조언 반영해 보았습니다 [4] 모루겟소요7199 20/12/02 7199
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로