6
printf("%.6g\n",36.666666662);
을 사용할 때 출력이 36.666667
으로 예상됩니다. 그러나 실제 출력은 36.6667
% g 정밀도 문제
무엇을 제공 했습니까? 제 목표는 10 진수 6 자리입니다.
printf("%.6g\n",36.666666662);
을 사용할 때 출력이 36.666667
으로 예상됩니다. 그러나 실제 출력은 36.6667
% g 정밀도 문제
무엇을 제공 했습니까? 제 목표는 10 진수 6 자리입니다.
이것은 올바른 동작입니다. 경우 a
, A, E, E, F 및 F 지정자이 자릿수 소수점 을 인쇄한다.
g 및 G 지정자의 경우 : 인쇄 할 수있는 최대 유효 자릿수입니다.
g
대신 f
을 사용하면 예상대로 작동합니다.
예제 코드
36.6667
36.666667
가 온라인으로 작업을 참조하십시오
#include <stdio.h>
int main(void) {
printf("%.6g\n", 36.666666662);
printf("%.6f\n", 36.666666662);
return 0;
}
결과 : ideone.
cplusplus.com은 "설명서"가 아니며 실제로 많은 인터페이스에 대한 잘못된 정보를 가지고 있습니다. 빠른 예제는 마음에 든다. 수정하지 않았다면'scanf '의 반환 값이다. "문서"링크를 만들려면 POSIX에서 C 표준 또는 동등한 언어를 가리켜 야합니다 (링크가 더 쉽습니다). –
@R .. : 좋은 지적, 링크를 제거했습니다. 댓글 주셔서 감사합니다. –