0

我编写了一个简单的程序,它接收多个输入并进行未来投资计算。

但是,由于某种原因,当我输入以下值时:投资 = 1 利息 = 5 年 = 1

我知道Your future value is 65.34496113081846什么时候应该是 1.05。

import java.util.*;

public class futurevalue
{
  public static void main(String[] args) 
  {

    Scanner sc = new Scanner(System.in);

    System.out.println("This program will calculate your future investment value"); 

    System.out.println("Enter investment amount: ");
    double investment = sc.nextDouble();

    System.out.println("Enter annual interest amount: ");
    double interest = sc.nextDouble();

    System.out.println("Enter number of years: ");
    int year = sc.nextInt();


    double futureValue = investment * (Math.pow(1 + interest, year*12));

    System.out.println("Your future value is " + futureValue);


  }
}

发现我的错误。我分了两次兴趣。

4

3 回答 3

2

您应该将您的利息除以 100。

于 2012-04-24T19:22:11.500 回答
1

利率是如何输入的?在 Math.pow 中添加 1 之前,您不应该将其除以 100 吗?

示例:每月利息 = 1%,如果您输入 1,您的 Math.pow 将是 Math.pow(1+1, year*12),这是不正确的。

于 2012-04-24T19:23:51.157 回答
0

是的,您的主要错误不是除以 100 来从百分比转换为比例,但是您还有另一个错误:

如果您的年利率为 5%,则计算复利每月利息所需的公式不是5%/12,而是

(0.05+1)^(1/12)-1

然后该投资的回报最终是:

1 * ( (0.05+1)^(1/12)-1 +1 )^(1 * 12) =
1 * ( (0.05+1)^(1/12) )^(12) =
1 * ( 0.05+1 ) = 1.05

确切地。

于 2012-04-24T19:33:01.287 回答