Java 简单计算未显示正确的值
我编写了一个简单的程序,它接收多个输入,并进行未来的投资计算 但是,由于某些原因,当我输入以下值时: 投资=1 利息=5 年份=1 我得到Java 简单计算未显示正确的值,java,Java,我编写了一个简单的程序,它接收多个输入,并进行未来的投资计算 但是,由于某些原因,当我输入以下值时: 投资=1 利息=5 年份=1 我得到您的未来值是65.34496113081846,而它应该是1.05 import java.util.*; public class futurevalue { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System
您的未来值是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);
}
}
我发现了我的错误。我把利息分了两次。你应该把利息除以100。你应该把利息除以100。利率是如何输入的?在Math.pow中添加1之前,是否应该将其除以100
示例:月利率=1%,如果您输入1,您的Math.pow将是Math.pow(1+1,year*12),这是不正确的。如何输入利率?在Math.pow中添加1之前,是否应该将其除以100
示例:月利息=1%,如果您输入1,您的Math.pow将是Math.pow(1+1,year*12),这是不正确的。是的,您的主要错误不是除以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
没错。是的,您的主要错误不是除以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
没错。你确定你的月利息不应该除以100吗?你的利息是500%。试试5%,或者0.05。该死,我真是个白痴。谢谢杰夫和戴斯特罗伊。你确定你的月利息不应该除以100吗?你的利息是500%。试试5%,或者0.05。该死,我真是个白痴。谢谢Jeff和dystroy。我仍然认为它不会给出1.05。复利。@MarkByers它确实给出(大约)1.05,但我同意你的观点,从APRI计算月利息的方法看起来是错误的,我仍然认为它不会给出1.05。复利。@MarkByers它确实给出(大约)1.05,但我同意你的观点,从四月开始计算月利息似乎是错误的