독학으로 배우는 C언어 012 자료형과 연산 6
Contents
1. 실수형
실수형은 소수점이 포함된 수치 자료를 처리할 때 사용되는 자료형이다. 지금까지의 정수형이나 문자형은 소수점 이하의 수는 표현할 수 없었다. 소수가 포함된 연산을 하거나 출력할 때는 실수형을 사용한다.
실수형의 허용범위
실수형 | 바이트수 | 음수 사용 | 데이타 허용범위 | 형식 지정자 |
float | 4 | 유 | -3.4 × 10(38) ~ 3.4 × 10(38) | %f |
double | 8 | 유 | -1.79 × 10(308) ~ 1.79 × 10(308) | %lf |
long double | 8 | 유 | double 큰 수 | %Lf |
실습 1: float 형의 사용 1
다음의 프로그램을 작성하여 ex030.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
float num1, num2, plus, minus, mult, divi;
num1 = 718.3563;
num2 = 34.2612;
plus = num1 + num2;
minus = num1 - num2;
mult = num1 * num2;
divi = num1 / num2;
printf("%f + %f = %f\n", num1, num2, plus);
printf("%f - %f = %f\n", num1, num2, minus);
printf("%f * %f = %f\n", num1, num2, mult);
printf("%f / %f = %f\n", num1, num2, divi);
return 0;
}
◉ 설명 : 행 설명
4: 사용할 변수를 실수형으로 선언한다.
5: 6: 실수를 각각 변수에 대입한다.
10: 실수형 변수의 표시는 %f 로 지정한다.
num1의 값이 718.3563가 저장되지 않고 718.356323으로 저장되었다. 이처럼 수치의 정확도에 문제가 생길 수 있다. 소수 이하의 길이를 지정하지 않았을 때는 일반적으로 6자리까지 표시된다.
실습 2: float 형의 사용 2
반지름이 14.36인 원의 면적과 둘레를 구하는 프로그램을 작성하여 ex031.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
float pi, radius, area, circum;
pi = 3.14159;
radius = 15.35;
area = radius * radius * pi;
circum = 2. * pi * radius;
printf("면적= %.3f\n", area);
printf("둘레= %.2f\n", circum);
return 0;
}
◉ 설명 : 행 설명
새로운 것이 있다면 %f 형식에서 소수점 자리의 지정이다.
소수점 이하의 자릿수 표시는 “%.숫자f” 형식을 사용하면 숫자만큼의 자릿수까지 표시된다.
실습 3: float 형의 사용 3
15와 285.3245의 합을 실수로 구하고 출력하는 프로그램을 작성하여 ex032.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
int num1;
float num2, plus;
num1 = 14;
num2 = 426.4216;
plus = (float)num1 + num2;
printf("%f\n", plus);
return 0;
}
◉ 설명 : 행 설명
실수와 정수의 계산에서는 변수의 형태를 통일 할 필요가 있다.
따라서 (float)num1 에 의해 14를 14.000000으로 변환한다.
실습 4: float 형의 사용 4
다음의 출력하는 프로그램을 작성하여 ex033.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
int plus1, plus2;
float num1, num2;
num1 = 55.8842;
num2 = 78.2964;
plus1 = (int)(num1 + num2);
plus2 = (int)num1 + (int)num2;
printf("%d\n", plus1);
printf("%d\n", plus2);
return 0;
}
◉ 설명 : 행 설명
8: 두 개의 실수를 먼저 덧셈하고 정수로 변환하여 저장한다.
9: 실수형 변수의 값을 정수로 변환하여 덧셈하고 저장한다.
2. %f의 활용
실습 1: %f의 활용 1
다음의 출력하는 프로그램을 작성하여 ex034.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
float num1, num2, divi;
num1 = 38.1234567;
num2 = 38.1234567;
divi = num1 / num2;
printf("%f / %f = %f \n", num1, num2, divi);
printf("%2.6f / %4.5f = %f \n", num1, num2, divi);
printf("%3.3f / %3.4f = %f \n", num1, num2, divi);
return 0;
}
◉ 설명 : 행 설명
양식 | 출력형태 | 내 용 | |
("%f",b) | 3.14159 | 실수 출력 | |
("%8.3f",b) | ...3.142 | 전체 8자리 소수이하 3자리 출력 | |
("%-8.3f",b) | 3.142... | 소수3자리이하 반올림 | |
("%+8.3f",b) | ..+3.142 | +, - 부호를 붙여 출력 | |
("%08.3f",b) | 0003.142 | 앞의 공백을 0 으로 채움 | |
("%+08.3f",b) | +003.142 | 부호를 붙이고 공백을 0 으로 채움 |
실습 2: %f의 활용 2
다음의 출력하는 프로그램을 작성하여 ex035.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
float num1 = 123.45;
float num2 = -12.345;
printf("%f\n", num1);
printf("%10.3f\n", num1);
printf("%+15.10f\n", num1);
printf("%010.3f\n", num1);
printf("%10.3f\n", num1);
printf("%f\n", num2);
printf("%10.3f\n", num2);
return 0;
}
실습 3: %f의 활용 3
다음의 출력하는 프로그램을 작성하여 ex036.c 저장하고 실행해 보자.
#include <stdio.h>
int main(void)
{
double num1, num2, plus;
num1 = 3146.326545452;
num2 = 49.745764234;
plus = num1 / num2;
printf("%4.9lf / %lf = %lf \n", num1, num2, plus);
return 0;
}
◉ 설명 : 행 설명
8; %4.9lf 는 정수부분 4자리와 소수 부분 9자리까지를 출력하기 위해 사용했다.
자리수를 지정하지 않으면 소수 부분은 6자리까지만 출력된다.
'C 프로그래밍' 카테고리의 다른 글
독학으로 배우는 C언어 014 문자와 문자열 출력함수 (0) | 2024.07.07 |
---|---|
독학으로 배우는 C언어 013 문자열 데이터의 출력 (0) | 2024.07.01 |
독학으로 배우는 C언어 011 자료형과 연산 5 (0) | 2024.06.20 |
독학으로 배우는 C언어 010 자료형과 연산 4 (0) | 2024.06.16 |
독학으로 배우는 C언어 009 자료형과 연산 3 (0) | 2024.06.12 |
댓글