C++计算单利与复利

/*
Daphne 以 10%的单利投资  每年的利润 为 100 * (1 + 0.1)
Cle0 以5%的复利投资,利息 = 本金 * 利率
*/

#include 
float simpleInterest (float nomey, int yealy);
float doubleInterest(float nomey, int yealy);
    using namespace std;

int main()
{
    float daphneInterst = 0;
    float celInterest = 0;
    int i = 0;
    while(1) {
        i++;
        celInterest = simpleInterest(100,i);
        daphneInterst = doubleInterest(100, i);
        if (daphneInterst > celInterest)
            break;
    }
    cout << "daphneInterst = " << daphneInterst <<endl;
    cout << "celInteresr = " << celInterest <<endl;
    cout << "after " << i << " yealy double interest more than simple interest." << endl; 
}
// 计算出 yealy 年之后的利息
float simpleInterest (float nomey, int yealy)
{
    float simpleInterest = 0;
    simpleInterest = yealy * nomey * (1 + 0.1);
    return simpleInterest;
}

// 计算出 yealy 年之后的利息
float doubleInterest(float nomey, int yealy)
{
    float rate = 1; // 注意这个数据类型绝对不能是 int,那样会导致 小数被截取,永远为1
    float doubleInterest = 0;
    for (int i = 0; i < yealy; i++)
        rate *= (1 + 0.05);
        cout << rate << endl;
  doubleInterest = nomey * rate;
    return doubleInterest;
}

遇到一个坑,那就是卡在循环里面出不来,最后发现是 rate的数据类型错误了,应该是float的 ,我写成int,导致计算的时候去掉小数。

你可能感兴趣的:(C++)