:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
마속 나무위키 문서 2.3. 가정의 패전 인용"그런데 여기서 마속은 제갈량의 명령을 무시하고 길목에 세워야 할 방어진지를 산 꼭대기에 세우는, 전쟁사상 다시 없을 바보짓을 한다.부장 왕평이 필사적으로 말렸지만 이마저도 무시해버린다."
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 20:23
부동소수점은 일단 정확하지 않습니다. C++ 은 정확도가 기본 6자리까지 일껀데요.
0.999999를 넘어가는 숫자부터 오차가 생겨서 1로 인식이 되는거 같습니다. 테스트해보니 0.9999998 == 1 도 값은 true네요.
|