【问题标题】:Calculating Interest Rate计算利率
【发布时间】:2014-09-21 18:36:05
【问题描述】:

所以我想为大学课程学习 C++,我必须编写一个使用这个公式的程序:

Amount = Principal * (1 + Rate/T)^T

其中本金是储蓄余额,利率是利率,t 是一年内复利的次数。根据本书,如果你输入 4.25 作为利率,12 作为本金的复利次数为 1000.00,那么你应该得到 43.34 作为利息,总金额应该是 1043.34。我不确定我的编码是错误的还是什么,但我想知道是否有人可以帮助我解决我可能犯的任何错误!我现在正在尝试自己做一两天,但我没有运气。

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

int main()
{
    double PRINCIPAL;
    double INTEREST_RATE;
    double COMPOUND_AMOUNT;


    cout << "What is your savings account balance?: " << endl;
    cin >> PRINCIPAL;
    cout << "What is your annual interest rate?: " << endl;
    cin >> INTEREST_RATE;
    cout << "How many times has your interest been compounded?: " << endl;
    cin >> COMPOUND_AMOUNT;

    double amt1 = 1 + (INTEREST_RATE/COMPOUND_AMOUNT);
    double AMOUNT = PRINCIPAL * pow(amt1, COMPOUND_AMOUNT);

    cout << "Interest Rate: " << INTEREST_RATE << endl;
    cout << "Times Compounded: " << COMPOUND_AMOUNT << endl;
    cout << "Principal: " << PRINCIPAL << endl;
    cout << "Interest: " << INTEREST_RATE * COMPOUND_AMOUNT << endl;
    cout << "Amount: " << AMOUNT << endl;

    system("pause");
    return 0;
}

【问题讨论】:

  • 代码有什么问题?对于您在问题中给出的输入,实际输出是什么?
  • 所以我输入 1000.00 作为本金(账户余额)。然后我输入 4.25 作为利率。最后,我将 12 作为复利的次数。我得到的利息显示为 51,金额为 38024.7,但在书中它说它应该显示为 43.34 作为利息,金额应该是 1043.34。
  • 您确定公式正确吗?首先是因为使用计算器我得到的结果与你相同,其次因为复利为 4.25%,你应该有近 65% 的复利(1.042512 的幂给出乘法因子,减一并乘以 100 得到百分比 (64.783136)。
  • prntscr.com/4p0bo4 里面有我所有的代码和我输入数据时程序的输入输出。但是这本书将“金额:”显示为 1043.34。而“利息:”为 43.34。这太烦人了,我觉得我犯了一个愚蠢的小错误,但我不知道它是什么!

标签: c++


【解决方案1】:

这是一个数学错误。如果您要将利率设为“4.25”%,则需要将利率除以 100。当输入 4.25 作为利率时,下面的代码给我的金额为 1043.34。

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

int main()
{
    double PRINCIPAL;
    double INTEREST_RATE;
    double COMPOUND_AMOUNT;


    cout << "What is your savings account balance?: " << endl;
    cin >> PRINCIPAL;
    cout << "What is your annual interest rate? (in %): " << endl;
    cin >> INTEREST_RATE;
    INTEREST_RATE /= 100;
    cout << "How many times has your interest been compounded?: " << endl;
    cin >> COMPOUND_AMOUNT;

    double amt1 = 1 + (INTEREST_RATE/COMPOUND_AMOUNT);
    double AMOUNT = PRINCIPAL * pow(amt1, COMPOUND_AMOUNT);

    cout << "Interest Rate (%): " << INTEREST_RATE * 100 << endl;
    cout << "Times Compounded: " << COMPOUND_AMOUNT << endl;
    cout << "Principal ($): " << PRINCIPAL << endl;
    cout << "Interest ($): " << AMOUNT - PRINCIPAL << endl;
    cout << "Amount ($): " << AMOUNT << endl;

    system("pause");
    return 0;
}

对于利息,您的书正在谈论以美元计的利息金额,即 AMOUNT - PRINCIPAL。

【讨论】:

  • 天哪!太谢谢你了,你不知道我在这里卡了多久了!我终于可以前进了!我非常感谢! :)!
  • Np 最简单的错误往往最难找到
猜你喜欢
  • 1970-01-01
  • 2018-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
  • 2021-07-09
相关资源
最近更新 更多