다음을 통해 공유

괄호 여부에 따른 지수 삼각함수 계산 오류

익명
2013-11-14T06:35:45+00:00

엑셀을 이용하여 수식을 작성하던중에 이상한 오류를 발견했습니다.

2^0.5 - 1/cos(radians(45))  = 0

(2^0.5 - 1/cos(radians(45)))   = 2E-16

왜 이런걸까요?

Microsoft 365 및 Office | Excel | 가정용 | Windows

잠긴 질문. 이 질문은 Microsoft 지원 커뮤니티에서 마이그레이션되었습니다. 질문이 도움이 되었는지 여부에 대해 응답할 수는 있지만, 메모나 회신을 추가하거나 질문을 따를 수는 없습니다.

댓글 0개 설명 없음

답변 3개

정렬 기준: 가장 유용함
  1. 익명
    2013-11-15T06:41:44+00:00

    사람의 계산에 의해서는 별다른 차이가 없기 때문에, 동일한 결과를 가져올 것입니다.

    하지만, PC의 경우 가로나 동일한 수식이라고 할지라도, 우선 순위/알고리즘이 달라질 수 있기 때문에, 결과가 달라지는 것으로 예상이 됩니다.

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음
  2. 익명
    2013-11-14T08:19:47+00:00

    우선 답변에 감사드립니다.

    내용을 다 읽어보지는 못했지만,

    부동소수점 오류에 의해 그런 현상이 나올 수 있다는 것은 이해했습니다.

    다만 질문드린 경우는, 똑같은 수식인데 괄호가 없는 경우는 정상적으로 0이 나오나,

    전체 식에 괄호를 치게 되면 오류가 나타나는 점이 이상하여 질문을 드린 것입니다.

    괄호 유무에 따라 연산 방식이 달라지나요?

    또 그 차이에 의해서 부동소수점 오류가 발생할 수도, 그렇지 않을 수도 있나요?

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음
  3. 익명
    2013-11-14T07:35:28+00:00

    안녕하십니까? 민수안 님

    Microsoft Community 사이트를 방문해 주셔서 감사합니다.

    문의 하신 Excel의 괄호에 따라서 값이 달라지는 문제에 대해 안내를 드리겠습니다.

    말씀해 주신 내용의 경우 Excel의 부동 소수점에 의해서 값이 딱 나누어 떨어지지 않고 있는 것으로 예상이 됩니다.

    support.microsoft.com/kb/42980/ko

    support.microsoft.com/kb/102555/ko

    support.microsoft.com/kb/78113/ko

    해당 내용의 경우 Excel 뿐만이 아니라 PC에서 사용되는 숫자 표시 방식이 "이진수" IEEE 계산에 의해서 소수점 이하의 값이 포함되게 됩니다.

    불편하시더라도 해당 값을 올바르게 계산하고자 하신다면, Round 함수를 이용하여 나머지를 버리도록 설정하시기 바랍니다.

    추가적인 내용이 있다면 하단의 [응답] 버튼을 눌러 회신해주시기 바랍니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    응답이 문제 해결에 도움이 되었다면, 아래에 있는 답변으로 [표시] 버튼을 눌러 주시기 바랍니다. 이는 유사한 증상을 겪는 다른 사용자들에게 도움이 될 수 있습니다.

    감사합니다.

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음