c에서 실수형 소수 자리수 제어하여 출력할때 발생하는 비일관성 문제..

yann8166의 이미지

printf("%.1f\n", 55.45)
의 결과 값은 55.5가 나옵니다. 두번째 자리수가 반올림 되어서 그렇겠지 하고 넘어갑니다.

printf("%.1f\n", 55.55);
의 결과 값은? 55.6이 아니라 55.5가 나옵니다.

printf("%.1f\n", 55.56);
의 결과 값부터가 55.6이 나오네요..

해당 자리수 이전에서 반올림 하는게 아닌건가요??

ifree의 이미지

0.55 = 0.1000110...(2)
0.56 = 0.1000111...(2)

이진수 관점으로 생각해야 되죠.