所以,我尝试过多种不同的东西,但是当我为最后一次输出运行时,我仍然得到无限的答案,您认为这个问题是什么?第一个输出工作正常,但第二个和第三个输出没有。他的指数应该是^12*5
。我没有做math.pow
对吗?
import java.util.Scanner;
public class CompoundInterest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double principal = 0;
double rate = 0;
double time = 0;
double one = 0;
double three = 0;
double five = 0;
double a, b;
System.out.print("Enter the amount of the loan: ");
a = input.nextDouble();
System.out.print("Enter the Rate of interest : ");
b = input.nextDouble();
one = a * Math.pow((1 + b/12),Math.pow(12,1));
three = a * Math.pow((1 + b/12),Math.pow(12,1));
five = a * Math.pow((1 + b/12),Math.pow(12,5));
System.out.println("");
System.out.println("The Compound Interest after 1 year is : "
+ one);
System.out.println("");
System.out.println("The Compound Interest after 3 years is : "
+ three);
System.out.println("");
System.out.println("The Compound Interest after 5 years is : "
+ five);
}
}
答案 0 :(得分:4)
你实际上有两种权力,例如在第二行(五年利息):
five = a * Math.pow((1 + b/12),Math.pow(12,5));
归结为:a * (1 + b/12)^(12^5)
。这是普通32位或64位计算机上接近无穷大的数字。
尝试使用a * Math.pow((1 + b/12), 12 * years);
,其中years
是感兴趣的年数。
答案 1 :(得分:1)
你正在以12^5
的力量提升某些东西,这是非常巨大的,应该会产生无穷大。
尝试
five = a * Math.pow((1 + b/12), 12*5);
代替。