我的程序有一行,它根据使用Math.pow
方法的公式计算复合兴趣。
当变量loanRate
在程序的原始版本中被声明为Integer
时,公式根本不起作用,只会返回0;
我将loanRate
更改为Double
,如下所示,由于某种原因,该程序正在运行。
很抱歉,如果这是一个非常简单的问题,我不知道为什么Math.pow
方法无法与我的Int
一起工作,并且如果使用Math.pow
背后的一般原则即可?
提前感谢您的帮助。
// Variables & Constants
int principle, i;
double simpleInt, compoundInt, difference, loanRate;
// Prompts user to enter principle and rate
System.out.print("Enter Principle: "); // keep print line open
principle = console.nextInt();
System.out.println();
System.out.print("Enter Rate: ");
loanRate = console.nextDouble();
// Header
// Caculates and Outputs Simple, Compound and Difference for the loan
// in 5 year intervals from 5 to 30
for (i = 5; i <= 30; i = i + 5 )
{
simpleInt = principle * loanRate/100 * i;
compoundInt = principle * ((Math.pow((1 + loanRate/100),i))-1);
difference = compoundInt - simpleInt;
System.out.printf("\n %7d %7.2f %7.2f %7.2f", i, simpleInt, compoundInt, difference);
}
答案 0 :(得分:1)
compoundInt = principle * ((Math.pow((1 + loanRate/100),i))-1);
loanRate/100
这里是关键,因为loadRate
是&lt; 100比这样的划分结果为0.将此更改为loanRate/100.0
,这将解决问题。