실수형 데이터를 출력하기 위해서는 서식 문자 %lf를 사용한다. %lf는 실수형 데이터를 출력하기 위한 서식 문자로 디폴트 값으로 소수점 여섯째 자리까지 출력한다. 라고 책에 그대로 적혀있는데 진짜 정론입니다. 한번 예시를 볼까요?
#include<cstdio>
int main(void)
{
printf("%lf\n", 123.4567);
printf("%.2lf\n", 123.4567);
printf("%.0lf\n", 123.4567);
printf("%.lf\n", 123.4567);
return 0;
}
123.456700
123.46
123
123
5번째 줄에서 123.4567을 %lf 대응하여 123.4567을 소수점 여섯째자리까지 출력합니다 그러면 과연 일곱번째자리를 초과하는 실수는 어떻게 처리될까요? 바로 반올림하여 여섯째 자리까지만 출력됩니다.
6번째줄은 %.2lf가 소수점 두번째 자리까지 출력합니다.
7번쨰줄은 %.0lf가 소수점을 출력하지 않음을 의미합니다.
8번쨰줄을 보면 %.1lf==%.0lf로 같음을 알수있습니다.
실수형 포맷팅은 저번시간에 배운 정수형 포맷팅이랑 구조적으로 똑같습니다.
#include<cstdio>
int main(void)
{
printf("12345678901234\n");
printf("ABC%8.2lfDEF\n", 123.4567);
printf("ABC%-8.2lfDEF\n", 123.4567);
printf("ABC%3.2lfDEF\n", 123.4567);
return 0;
}
12345678901234
ABC 123.46DEF
ABC123.46 DEF
ABC123.46DEF
5번째 줄은 12345678901234를 출력하고 한줄의 내림을 하죠
6번쨰 줄은 ABC를 출력한이후 8칸을 확보한후 123.4567을 두번쨰자리까지 출력하므로 반올림한 123.46을 출력후 오른쪽 정렬을 합니다.
7번째 줄은 6번째 줄과 마찬가지지만 왼쪽정렬을 합니다.
8번쨰줄은 3칸의 자리를 확보하지만 123.46이므로 총6칸의 자리가 필요합니다. .도 한칸을 먹기떄문에 %6의 형식과 자동적으로 맞춰져 6칸의 자리가 확보되어 출력합니다.
연습문제 printf를 6개를 각 줄에 사용하여 실수의 덧셈과정을 출력하는 프로그램을 만들어봅시다.
서식문자의 자릿수는 10자리에 맞춰 오른쪽정렬하여 소수점 셋째 자리까지 출력합니다. 마지막 더한값은 왼쪽정렬하여 소수점 셋째 자리까지 출력합시다.
12.345
34.567
56.789
456.780
----------
560.481
답
#include<cstdio>
int main(void)
{
printf("%10.3lf\n", 12.345);
printf("%10.3lf\n", 34.567);
printf("%10.3lf\n", 56.789);
printf("%10.3lf\n", 456.780);
printf("----------\n");
printf("%-10.3lf\n", 12.345 + 34.567 + 56.789 + 456.780);
return 0;
}
'스터디' 카테고리의 다른 글
| 코딩테스트를 위한 파이썬 강의 (0) | 2023.01.17 |
|---|---|
| C++ 6번째 코딩마법서 (변수) (0) | 2020.09.07 |
| C++ 4번째 수업 코딩마법서 (0) | 2020.09.03 |
| C++3번째수업 코딩마법서 (0) | 2020.09.02 |
| C++ 2번째 수업 (0) | 2020.09.01 |