0.1 + 0.2 == 0.3 is false
print ( 0.3 - 0.2 ) print ( 0.3 - 0.2 == 0.1) #output 0.09999999999999998 False 위와같은 문제는, 부동소수점에대한 고려를 하지않았기때문에 발생한 문제이다. 부동소수점이란, 표시되는 숫자는 10진법에 의해서 표시되지만, 실제 소수를 나타내는 부분은 2진법에의해서 구성되어있는 부분에서 생기는 차이이다. 이때, 지수부(소수점 앞에 부분)는 2진법의 표현으로 10진법의 모든수를 표현할 수 있지만, 가수부(fraction,소수점 뒤에 부분)는 2진법의 표현으로 10진법의 모든수를 표현할 수 없고, 그에따라서 부동소수점 문제가 발생하게 된다. fraction부분은 각 소수점 자리가 1/2, 1/4, 1/8, 1/16, ... 의 크기를 가지고 있으며, ..
2022. 8. 18.