채권 가격 출력
이 단계에서는 채권 가격 계산 결과를 더 자세하고 정형화된 형식으로 출력하도록 채권 가격 프로그램을 개선합니다.
bond_price.c 파일을 업데이트하여 출력 형식을 개선합니다.
cd ~/project
nano bond_price.c
코드를 수정하여 자세한 채권 가격 정보를 표시합니다.
#include <stdio.h>
#include <math.h>
double calculate_bond_price(double coupon_rate, double face_value,
double yield, int maturity) {
double bond_price = 0.0;
// 쿠폰 지급액 계산
double coupon_payment = coupon_rate * face_value;
// 쿠폰 지급액 할인
for (int year = 1; year <= maturity; year++) {
double present_value_coupon = coupon_payment / pow(1 + yield, year);
bond_price += present_value_coupon;
}
// 액면가 할인
double present_value_face = face_value / pow(1 + yield, maturity);
bond_price += present_value_face;
return bond_price;
}
void print_bond_details(double coupon_rate, double face_value,
double yield, int maturity, double bond_price) {
printf("===== 채권 가격 분석 =====\n");
printf("쿠폰율: %.2f%%\n", coupon_rate * 100);
printf("액면가: $%.2f\n", face_value);
printf("만기 수익률: %.2f%%\n", yield * 100);
printf("만기까지 기간: %d년\n", maturity);
printf("--------------------------------\n");
printf("계산된 채권 가격: $%.2f\n", bond_price);
printf("액면가 대비 할인액: $%.2f (%.2f%%)\n",
face_value - bond_price,
((face_value - bond_price) / face_value) * 100);
printf("===============================\n");
}
int main() {
// 채권 매개변수
double coupon_rate = 0.05; // 연 5% 쿠폰율
double face_value = 1000.0; // 채권 액면가
double yield = 0.06; // 만기까지의 연 수익률
int maturity = 5; // 만기까지의 기간 (년)
// 채권 가격 계산
double bond_price = calculate_bond_price(coupon_rate, face_value, yield, maturity);
// 자세한 채권 가격 정보 출력
print_bond_details(coupon_rate, face_value, yield, maturity, bond_price);
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc bond_price.c -o bond_price -lm
./bond_price
예상 출력:
===== 채권 가격 분석 =====
쿠폰율: 5.00%
액면가: $1000.00
만기 수익률: 6.00%
만기까지 기간: 5 년
--------------------------------
계산된 채권 가격: $952.08
액면가 대비 할인액: $47.92 (4.79%)
===============================