[C/C++] printf에 float만을 위한 변환 명세가 없는 이유
2022. 4. 28. 01:41
C++
printf("%f", 1.0f)와 같이 printf에 float형을 넘겨줘도 절대 printf 함수에 float형을 넘겨줄 수 없다는 재밌는 사실을 알게 됐다. double lf = 1.0; printf("%lf\n", lf); // double lf 사용 printf("%f\n", lf); // double에 f도 가능 위와 같이 double을 출력할 땐 %lf와 %f 둘 다 사용할 수 있는데 이건 C99에 생긴 기능으로 scanf에서 double형을 %lf로 받기 때문에 편의성?을 위해 생긴 기능이라고 한다. 종종 float은 %f, double은 %lf로 출력해야 한다는 사람들이 있는데 이건 완전한 오개념이다. 아래 사진을 봐도 f는 명확히 double을 위한 변환 명세다. 그런데 float형을 ..