printf(“%-.3f\n”,3.4567); 는 폭이 8인건지 아니면 그냥 폭이 정해지지 않은 것인지 궁금합니다!
==> 이 경우에는는 폭이 정해지지 않은 것입니다.
"-"가 붙으면 왼쪽 정렬인데 기호가 붙지 않은 오른쪽 정렬의 경우도 같은 결과가 나옵니다.
즉 결과값이 "3.457" 5자리이므로 폭을 5로 해서 값을 출력해 주게 됩니다.
printf(“%-.3f\n”,3.4567); // 동일한 표현 == printf(“%-5.3f\n”,3.4567)
printf(“%.3f\n”,3.4567); // 동일한 표현 == printf(“%5.3f\n”,3.4567)
아래 경우처럼 폭을 지정해 주어야 자리수를 확보하게 됩니다. 좋은 질문 감사드립니다.
printf("%-10.3f\n",3.4567);
printf("%10.3f\n",3.4567);
#include <stdio.h>
// 실수형: %ⓝ.ⓓd ⓝ은소수점을포함하여확보할전체자릿수 ⓓ는소수점자릿수
int main() {
printf("%-10.3f\n",3.4567); // 10자리 확보 후 왼쪽 정렬(소수점 3자리)
printf("%10.3f\n",3.4567); // 10자리 확보 후 오른쪽 정렬(소수점 3자리)
printf("%-.3f\n",3.4567); // 별도로 자리 확보 하지 않고 왼쪽 정렬(소수점 3자리)
printf("%.3f\n",3.4567); // 별도로 자리 확보 하지 않고 오른쪽 정렬(소수점 3자리)
printf("%-5.3f\n",3.4567); // 5 자리 확보 후 왼쪽 정렬(소수점 3자리
printf("%5.3f\n",3.4567); // 5 자리 확보 후 오른쪽 정렬(소수점 3자리)
printf("%-f\n",3.4567); // 8자리 확보 후 왼쪽 정렬(소수점 6자리)
printf("%f\n",3.4567); // 8자리 확보 후 오른쪽 정렬(소수점 6자리)
printf("%-f\n",123.4567); // 10자리 확보 후 왼쪽 정렬(소수점 6자리)
// 8자리가 기본이지만 소수점 이전의 값이 3자리 이므로 10자리로 변동되어서 확보됨
printf("%f\n",123.4567); // 10자리 확보 후 왼쪽 정렬(소수점 6자리)
return 0;
}