float형에 0.1을 계속해서 더하거나 뺄때의 문제점?

minonnet의 이미지

안녕하세요

float형으로 선언한 변수를 계속해서 0.1을 더하거나 뺄때 정확하게 0.1의 값이 아닌 것은데요?
이유가 무엇인지 궁금합니다.

예를 들어 다음과 같이 식을 만들었습니다.

float f=0.0;
 
if(변수A > 0){
    f = f + 0.1;
}
else if(변수A < 0){
    f = f - 0.1;
}
else{
    // 어떠한 동작을 함.
}

위와 같은 예제로 코딩했을 때, 정확하게 0.1을 더하거나 빼지 않습니다.
왜 그런지 잘 모르겠습니다.

그럼 즐거운 하루 되세요..
아~자~~!

danskesb의 이미지