printf("%.1f\n", 55.45) 의 결과 값은 55.5가 나옵니다. 두번째 자리수가 반올림 되어서 그렇겠지 하고 넘어갑니다.
printf("%.1f\n", 55.55); 의 결과 값은? 55.6이 아니라 55.5가 나옵니다.
printf("%.1f\n", 55.56); 의 결과 값부터가 55.6이 나오네요..
해당 자리수 이전에서 반올림 하는게 아닌건가요??
0.55 = 0.1000110...(2) 0.56 = 0.1000111...(2)
이진수 관점으로 생각해야 되죠.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
0.55 = 0.1000110...(2) 0.56 =
0.55 = 0.1000110...(2)
0.56 = 0.1000111...(2)
이진수 관점으로 생각해야 되죠.
댓글 달기