sprintf로 문자열에 부동소수점 값을 출력하면 버퍼에 출력된 값과 원래 값이 다르게 나옵니다. 아무래도 반올림 때문인것 같은데,
예를 들어,
sprintf(buffer, "%f", 229428.69600199119);
를 호출하면 buffer에는
229428.696002가 들어갑니다.
sprintf의 타입지시자에 precision을 정하는 방법이 있나요.?
sprintf(buffer, "%.11f", 229428.69600199119); 이라고 하시면, 소수점 이하 11자리까지 그대로 프린트 해줍니다.
http://jungjun.net
텍스트 포맷에 대한 자세한 정보
<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]
%.11f
sprintf(buffer, "%.11f", 229428.69600199119);
이라고 하시면, 소수점 이하 11자리까지 그대로 프린트 해줍니다.
http://jungjun.net
댓글 달기