C에서 자릿수와 소수점을 지정한 수만큼 출력하게 할 수 있다.
소수점 지정
%.3f → 소수점 이하 3자리까지 표현하고 싶을 경우
#include <stdio.h>
int main(void){
double a = 105.225314;
printf("%.10lf", a);
return 0;
}
자릿수 지정
%6d → 6칸으로 표시함
123을 %6d로 출력하면 빈칸 3개 + 123으로 표시된다.
%06d로 출력하면 빈칸을 0으로 채운다.
소수점을 포함하기 때문에 유의해야 한다.
#include <stdio.h>
int main(void){
int a = 123;
printf("%6d", a);
return 0;
}
캐스트
대입문의 좌변과 우변의 자료형이 서로 다를 때는 자동으로 좌변의 자료형으로 변환된다.
double a;
a = 2; //double형인 2.000...으로 변환됨
#include <stdio.h>
int main(void){
int a = 5, b = 2; //변수의 초기화 및 선언
double c = a / b;
printf("a/b = %.2f\n", c);
return 0;
}
위와 같은 코드의 경우 c가 double형이지만 a/b는 int형으로 계산되기 때문에 값이 2.5가 아니라 2가 저장된다.
다음과 같이 캐스트 연산자로 해결할 수 있다.
#include <stdio.h>
int main(void){
int a = 5, b = 2;
double c = (double)a / b;
printf("a/b = %.2f\n", c);
return 0;
}
내가 예전에 썼을 때는 (double)a / (double)b로 썼었는데 저렇게도 되는 걸 보니 a/b의 값을 double형으로 바꾸는 것 같다.
C언어 기초 다지기 - 김태용·조형국
위와 같은 제목의 책내용을 일부 포함하고 있다.
'C 이론' 카테고리의 다른 글
[C 기초] 변수명 사용 규칙, 예약어 (0) | 2021.03.23 |
---|---|
[C 기초] 이스케이프 시퀀스 (0) | 2021.03.23 |
[C 기초] 데이터형, sizeof 연산자 (0) | 2021.03.23 |
[C 기초] 출력타입 (0) | 2021.03.22 |
[C 기초] 진수, 아스키코드 (0) | 2021.02.26 |