-2

我只是作为初学者练习Java。那么问题来了:假设您每个月将 100 美元存入一个年利率为 5% 的储蓄账户。因此,月利率为 0.00417。第一个月之后,帐户中的值变为 100 * (1 + 0.00417) = 100.417,第二个月将是 (100 + firstMonthValue) * 1.00417,然后每个月都这样。所以这是我的代码:

import javax.swing.JOptionPane;
public class vinalcialApplication {
    public static void main(String args[]){
        String monthlySaving = JOptionPane.showInputDialog("Enter the monthly savings");
        double monthsaving = Double.parseDouble(monthlySaving);
        //define monthly rate
        double monthlyrate = 1.00417;
        double totalrate = monthlyrate + 0.00417;
        double firstMonthValue = monthsaving * (totalrate);
    double secondMonthValue = (firstMonthValue + 100)*(monthlyrate);
    double thridMonthValue = (secondMonthValue + 100) * (monthlyrate);

     .........
    System.out.print("After the sixth month, the account value is " sixthMonthValue);
}

}

我的意思是代码可以工作,但是要编写的代码太多了。我确信我可以使用循环或 if 语句来执行此操作,但还没有想出办法来执行此操作..您能帮忙吗?谢谢你。

4

3 回答 3

4

如果我理解正确,这称为复利。

有一个数学公式可以在不循环的情况下实现你想要的。

这是维基百科的公式

在此处输入图像描述

其中,A = 未来价值,P = 本金(初始投资),r = 年名义利率,利率,n = 每年复利的次数,t = 年数

希望这可以帮助您解决您想要的问题。我可以给你示例代码,但我认为将这个公式转换为 java 语句相当容易。如果您需要更多信息,请告诉我们。

资料来源:http ://en.wikipedia.org/wiki/Compound_interest

于 2013-04-30T03:58:57.280 回答
0

数学可能是错误的,但基本概念是合理的。

public static void main(String[] args) {
    double monthsaving = 100;
    double monthlyrate = 1.00417;

    double savings = 0;
    // Loop for six months...
    for (int index = 0; index < 6; index++) {
        savings += monthsaving * monthlyrate;
        System.out.println(index + ":" + savings);
    }
    System.out.println(savings);
}

仔细查看Control Flow Statements、paying attaching withwhile和statementsdo-whilefor

于 2013-04-30T03:58:36.193 回答
0
import javax.swing.JOptionPane;
public class vinalcialApplication {
public static void main(String args[]){
    String monthlySaving = JOptionPane.showInputDialog("Enter the monthly savings");
    double monthsaving = Double.parseDouble(monthlySaving);
    //define monthly rate
    double monthlyrate = 1.00417;
    double totalrate = monthlyrate + 0.00417;
    double value = monthsaving * (totalrate);
    for(int i = 1; i<6;i++) {
        value = (value + 100)*(monthlyrate);
    }
    System.out.print("After the sixth month, the account value is " value);
}
于 2013-04-30T04:02:00.663 回答