C 이론

[C 기초] 소수점 지정 출력, 자릿수 지정, 캐스트

ruming 2021. 3. 23. 02:23

 

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