
이번 글을 통해 배워갈 내용
- C++에서 double/float 타입 (== 비교 혹은!= 비교)를 하는 법을 알아보겠습니다.
float 나 double 타입을 0에다 일치 비교 연산을 하실 때
아래와 같이 쓰고 계신다면
일치한다라고 출력은 되지만
const float kMyFloatNum = 0.0F;
if(kMyFloatNum == 0)
{
std::cout<< "일치한다";
}
저는
아래와 같이 연산할 것 같습니다
const float kMyFloatNum = 0.0F;
if (fabs(kMyFloatNum - 0) <= DBL_EPSILON * std::fmax(fabs(kMyFloatNum), fabs(0)))
{
std::cout << "일치한다";
}
이렇게 복잡하게 연산하는 이유는
컴퓨터 연산에서
정밀도 계산적인 측면에서
0과 0.000 이 다른 수 이기 때문입니다.
따라서
이 부분이 중요한데
floating point 숫자 일치 비교를 최대한 자제하는 게
정확도 측면에서는 제일 좋은 것 같습니다.
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
참조 및 인용
https://stackoverflow.com/questions/19837576/comparing-floating-point-number-to-zero
Comparing floating point number to zero
The C++ FAQ lite "[29.17] Why doesn't my floating-point comparison work?" recommends this equality test: #include /* for std::abs(double) */ inline bool isEqual(double x, ...
stackoverflow.com
C++ Primer
https://codemasterkimc.tistory.com/35
C++ 이론을 배울수 있는 곳 정리
개요 C++을 배우는 책, 강의, 블로그, 링크 등을 공유합니다. (링크 및 간략한 설명을 하였으나 만약 원작자가 링크를 거는것을 원치 않을 경우 연락주시기 바랍니다.) 서적 https://www.amazon.com/Prime
codemasterkimc.tistory.com
https://codemasterkimc.tistory.com/50
300년차 개발자의 좋은 코드 5계명 (Clean Code)
이번 글을 통해 배워갈 내용 좋은 코드(Clean Code)를 작성하기 위해 개발자로서 생각해볼 5가지 요소를 알아보겠습니다. 개요 좋은 코드란 무엇일까요? 저는 자원이 한정적인 컴퓨터 세상에서 좋
codemasterkimc.tistory.com
'C++ > C++ 기타' 카테고리의 다른 글
| C++ 에서 문자열(String)을 숫자로 변환하는 법 (0) | 2021.10.22 |
|---|---|
| visual studio 2019에서 줄맞춤 단축키, 줄정렬 단축키 (0) | 2021.10.16 |
| C++에서 new 없이 동적으로 2D 배열을 사용하는 방법에 대한 고찰 (0) | 2021.09.04 |
| C++ 타입캐스팅에 대한 생각과 팁 (0) | 2021.08.20 |
| C++에서 string을 int, uint혹은 long으로 변경하기 (1) | 2021.07.21 |