소개
이 실습에서는 C 언어에서 부동소수점 연산을 다루는 방법을 배웁니다. 먼저 float 및 double 변수를 선언하고, 이 변수들에 대한 다양한 산술 연산을 수행한 후, 적절한 정밀도로 결과를 출력합니다. 이 실습은 C 프로그래밍에서 십진수를 다루고 정확한 수학 계산을 수행하는 데 필수적인 기술을 다룹니다.
첫 번째 단계에서는 float 및 double 데이터 형식을 사용하여 부동소수점 변수를 선언하고 원하는 정밀도로 값을 출력하는 방법을 보여줍니다. 두 번째 단계에서는 부동소수점 숫자에 대한 덧셈, 뺄셈, 곱셈 및 나눗셈과 같은 산술 연산을 수행하는 데 중점을 둡니다.
부동소수점 변수 선언
이 단계에서는 C 언어에서 float 및 double 데이터 형식을 사용하여 부동소수점 변수를 선언하는 방법을 배웁니다. 부동소수점 변수는 십진수를 저장하고 정밀한 수학 계산을 수행하는 데 필수적입니다.
먼저 변수 선언을 보여주는 새로운 C 파일을 생성해 봅시다.
cd ~/project
nano floating_variables.c
이제 다음 코드를 파일에 추가합니다.
#include <stdio.h>
int main() {
// float 변수 선언
float temperature = 98.6;
float price = 19.99;
// double 변수 선언
double pi = 3.14159265359;
double large_number = 1234567890.123456789;
// 변수 출력
printf("온도 (float): %.2f\n", temperature);
printf("가격 (float): %.2f\n", price);
printf("파이 (double): %.5f\n", pi);
printf("큰 숫자 (double): %.9f\n", large_number);
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc floating_variables.c -o floating_variables
./floating_variables
예상 출력:
온도 (float): 98.60
가격 (float): 19.99
파이 (double): 3.14159
큰 숫자 (double): 1234567890.123456789
코드를 자세히 살펴보겠습니다.
float는 단정밀도 부동소수점 수 (일반적으로 4 바이트) 를 위해 사용됩니다.double는 배정밀도 부동소수점 수 (일반적으로 8 바이트) 를 위해 사용됩니다.%.2f및%.5f형식 지정자는 출력 시 소수점 자릿수 정밀도를 제어합니다.
부동소수점 값에 대한 산술 연산
이 단계에서는 C 언어에서 부동소수점 숫자에 대한 다양한 산술 연산 (덧셈, 뺄셈, 곱셈, 나눗셈) 을 수행하는 방법을 배웁니다.
이전 파일에 대한 수정을 통해 부동소수점 산술 연산을 보여주겠습니다.
cd ~/project
nano floating_arithmetic.c
다음 코드를 파일에 추가합니다.
#include <stdio.h>
int main() {
// 부동소수점 변수 선언
float a = 10.5;
float b = 3.2;
// 덧셈
float sum = a + b;
printf("덧셈: %.2f + %.2f = %.2f\n", a, b, sum);
// 뺄셈
float difference = a - b;
printf("뺄셈: %.2f - %.2f = %.2f\n", a, b, difference);
// 곱셈
float product = a * b;
printf("곱셈: %.2f * %.2f = %.2f\n", a, b, product);
// 나눗셈
float quotient = a / b;
printf("나눗셈: %.2f / %.2f = %.2f\n", a, b, quotient);
// 혼합 산술 연산
float mixed_calc = (a + b) * (a - b) / b;
printf("혼합 계산: (%.2f + %.2f) * (%.2f - %.2f) / %.2f = %.2f\n",
a, b, a, b, b, mixed_calc);
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc floating_arithmetic.c -o floating_arithmetic
./floating_arithmetic
예상 출력:
덧셈: 10.50 + 3.20 = 13.70
뺄셈: 10.50 - 3.20 = 7.30
곱셈: 10.50 * 3.20 = 33.60
나눗셈: 10.50 / 3.20 = 3.28
혼합 계산: (10.50 + 3.20) * (10.50 - 3.20) / 3.20 = 24.41
부동소수점 산술 연산에 대한 주요 사항:
- 소수점 자릿수를 제어하려면
%.2f형식 지정자를 사용합니다. - 부동소수점 연산은 표준 수학 규칙을 따릅니다.
- 부동소수점 계산 시 정밀도 제한에 유의해야 합니다.
적절한 정밀도로 결과 출력
이 단계에서는 C 언어에서 형식 지정자를 사용하여 부동소수점 숫자 출력의 정밀도를 제어하는 방법을 배웁니다.
다양한 정밀도 형식을 탐색하기 위한 새로운 파일을 생성합니다.
cd ~/project
nano floating_precision.c
다음 코드를 파일에 추가합니다.
#include <stdio.h>
int main() {
// 부동소수점 변수 선언
double pi = 3.14159265358979323846;
double large_number = 1234567.89012345;
// 기본 출력 (제한된 정밀도)
printf("기본 출력:\n");
printf("Pi: %f\n", pi);
printf("Large Number: %f\n\n", large_number);
// 소수점 자릿수 제어
printf("정밀도 제어:\n");
printf("Pi (소수점 2 자리): %.2f\n", pi);
printf("Pi (소수점 5 자리): %.5f\n", pi);
printf("Pi (소수점 10 자리): %.10f\n\n", pi);
// 과학 표기법
printf("과학 표기법:\n");
printf("Large Number (기본): %e\n", large_number);
printf("Large Number (소수점 3 자리): %.3e\n\n", large_number);
// 너비와 정밀도 결합
printf("너비와 정밀도:\n");
printf("Pi (너비 10, 소수점 4 자리): %10.4f\n", pi);
printf("Large Number (너비 15, 소수점 2 자리): %15.2f\n", large_number);
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc floating_precision.c -o floating_precision
./floating_precision
예상 출력:
기본 출력:
Pi: 3.141593
Large Number: 1234567.890123
정밀도 제어:
Pi (소수점 2자리): 3.14
Pi (소수점 5자리): 3.14159
Pi (소수점 10자리): 3.1415926536
과학 표기법:
Large Number (기본): 1.234568e+06
Large Number (소수점 3자리): 1.235e+06
너비와 정밀도:
Pi (너비 10, 소수점 4자리): 3.1416
Large Number (너비 15, 소수점 2자리): 1234567.89
정밀도 형식 지정에 대한 주요 사항:
%f는 부동소수점 숫자의 기본 형식 지정자입니다..2f는 소수점 2 자리,.5f는 소수점 5 자리를 의미합니다.%e또는%E는 과학 표기법을 표시합니다.- 너비 지정자는 출력을 정렬하고 형식을 지정하는 데 도움이 됩니다.
요약
이 실험에서는 float 및 double 데이터 형식을 사용하여 부동소수점 변수를 선언하고, 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 산술 연산을 수행하는 방법을 배웠습니다. 또한, 형식 지정자를 사용하여 부동소수점 숫자 출력 시 소수점 자릿수의 정밀도를 제어하는 방법을 학습했습니다. 이러한 기술은 C 프로그래밍에서 십진수 데이터를 다루고 정밀한 수학 계산을 수행하는 데 필수적입니다.



