未来价值计算器和指数

时间:2014-10-10 18:40:43

标签: c

我试图制作一个Future值计算器,不允许使用power函数。计算未来价值的公式是未来值=本金*(1 +利率)^(期数)。现在你不能在C中使用^作为指数,所以我尝试使用基数和指数概念,​​这给了我最接近的预期但仍然不对的答案。它给了我一个价值,但它不是正确答案而且太大了。如果您需要更多信息,请询问。

试运行:

投资计算器

校长:1000 年费率:0.06 年数:5 未来价值为1338225577600000.000000

预期结果为$ 1338.23。

#include<stdio.h>

double FutureVal(double prin, double rate,int years);

int main()
{

    double principal;
    double annualRate;
    int  NumYears;
    double result;


    printf("Investment Calculator\n");
    printf("=====================\n");

    printf("Principal  : ");
    scanf("%lf",&principal);

    printf("Annual Rate: ");
    scanf("%lf",&annualRate);

    printf("No of Years: ");
    scanf("%d",&NumYears);

    result = FutureVal(principal,annualRate,NumYears);

    printf("The future value is $%lf \n",result);

    return 0;

}

double FutureVal(double prin, double rate, int years)
{
    int i;
    double value = (prin * ( 1 + rate)) ;
    double result = 1;

    for (i = 0; i < years; i++)
    {
            result *= value;
    }
    return result;

}

1 个答案:

答案 0 :(得分:0)

以下功能可以完成任务:

double FutureVal(double prin, double rate, int years)
{
    int i;
    double value = 1 + rate ;
    double result = 1;

    for (i = 0; i < years; i++)
    {
            result *= value;
    }
    result *= prin;
    return result;
}

因为在公式中找到了它的数量

prin * ((1+rate)^years)

你正在做的是:

(prin*(1+rate))^years

这是输出错误的原因

PS:如果你想在你提到的小数点后只显示2位数,请使用:

 printf("The future value is $%.2lf \n",result);

在函数调用后的main方法中