int i = 0;
double d = 0.f;
while (i++ < 100)
d += 0.01;
사실 C++에선 다 자르고 출력하기 때문에 파악하기가 쉽지 않다
아래와 같이 작성해주면 쉽게 파악 할 수가 있다 따라서
if (d == 1.0) 를 해주면 false가 나오는 이유다
int main()
{
int i = 0;
double d = 0.f;
while (i++ < 100)
d += 0.01;
printf("%.16f", d);
}
이녀석만큼 빼주면 된다
int main()
{
int i = 0;
double d = 0.f;
while (i++ < 100)
d += 0.01;
if (fabsf(d - 1.0) <= FLT_EPSILON)
cout << "same";
}
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C++] 2차원 vector 크기 동적으로 재설정 (0) | 2024.05.08 |
---|---|
[C++] vector (벡터) 복사하기 (0) | 2024.05.07 |
[C++] 구조체 바이트 패딩 규칙 코드 (structure byte padding or align rule) (0) | 2024.04.24 |
C++ 23 추가된 주요 기능들 (0) | 2024.02.27 |
[C] 키 입력받는 함수 GetAsyncKeyState, GetKeyState (1) | 2024.01.13 |