2014-09-21 95 views
0

所以我想学习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; 
} 
+0

你对代码有什么问题?对于你在问题中给出的输入,* actual *输出是什么? – 2014-09-21 18:44:53

+0

所以我输入1000.00作为本金(账户余额)。 然后我输入4.25作为利率。最后,我把12作为利息被复合的次数。我得到的利息显示为51,金额为38024.7,但在书中它表示它应该显示为43.34,因为利息和金额应该是1043.34。 – 2014-09-21 18:47:07

+0

你确定公式是正确的吗?首先,因为有了计算器,我可以得到和你一样的结果,其次,因为利率为4.25%复合了12次,你应该有近65%的复合利息(对'12'的权力'1.0425'乘法因子,减1和乘以100得到百分比('64.783136'))。 – 2014-09-21 19:01:23

回答

1

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

#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。

+0

天啊!非常感谢你,你不知道我坐在这里坐了多久!最后我可以前进!我非常感谢! :)! – 2014-09-21 19:16:36

+0

Np最简单的错误往往是最难找到的 – 2014-09-21 19:23:31