방명록
- [마이플랫폼] 부동소수점 오류2023년 10월 28일 20시 18분 34초에 업로드 된 글입니다.작성자: 봉주니
마이플랫폼에서 더하기 , 빼기 연산을 하다보면 정확한 값이 아닌 소수점이 길어지는 현상이 발생하였다.
예로)
10.95+1.95 를 계산하면 12.9 가 아닌 12.899999999999999 등으로 값이 이상하게 나오는 현상
10.77-8.53 이 2.22가 아닌 2.1999999999 출력
투비소프트에서 말하는 부동소수점의 문제는 아래와 같았다.
현재 사용되는 거의 모든 CPU에서는 부동소숫점 자료형을 표현하는데에 있어서 메모리에서 차지하는 크기를 제한을 두고 있습니다.
제한의 이유는 상대적으로 작은숫자를 자주 사용하지 않으며, 또한 높은 처리속도와 CPU 설계상 용이함을 위해서 고정크기가 필요하기 때문입니다.
이 제한의 결과로서 특정 소수들이 이진수로 표현할때 무한소수로 나타나면 모두 저장할수 없어 그 표현이 제한되어 오차를 가지는 근사값으로 표현됩니다.
이는 1/3 이 10진수로 0.3333.... 과 같이 10진수로는 모두 표현못하는 것과 같이, 0.1이 2진수로 0001100110011100110011..... 으로 무한반복하기 때문입니다.따라서, 소수점이 발생되는 숫자의 계산이 있는 경우, truncate이나 round처리를 강제로 해줘야 정상 처리가 된다는 것이다.
반응형'마이플랫폼(MIPLATFORM)' 카테고리의 다른 글
[마이플랫폼] 개행문자(chr10) 제거 (0) 2023.02.14 [MIPLATFORM] 데이터셋 ADDROW 오류 (0) 2022.06.09 다음글이 없습니다.이전글이 없습니다.댓글