简单计算不显示正确的值

时间:2012-04-24 19:18:29

标签: java

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

但是,出于某种原因,当我输入以下值时: 投资= 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);


  }
}

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

3 个答案:

答案 0 :(得分:2)

你应该将你的兴趣除以100。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

如果您的APR为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

准确。