Java 如何将双精度提升为幂
无法计算如何将公式提高到幂。我还导入了java中的java.lang.Math。我只是在“Math”上不断得到Sytax错误,删除这个令牌,并且不能在原始数据类型double errors上调用pow(double) 这是假设30年贷款的公式 年金系数=(0.003125*(1+0.003125)^360)/((1+0.003125)^360)-1) 360是30年12个月的时间来获得每月付款Java 如何将双精度提升为幂,java,Java,无法计算如何将公式提高到幂。我还导入了java中的java.lang.Math。我只是在“Math”上不断得到Sytax错误,删除这个令牌,并且不能在原始数据类型double errors上调用pow(double) 这是假设30年贷款的公式 年金系数=(0.003125*(1+0.003125)^360)/((1+0.003125)^360)-1) 360是30年12个月的时间来获得每月付款 import java.util.Scanner; import java.lang.Math; pu
import java.util.Scanner;
import java.lang.Math;
public class HW3Method {
public static void main(String[] args) {
// main method for user inputs
Scanner info = new Scanner(System.in);
System.out.println("Enter the starting annual rate as a percent (n.nnn)");
double startRate = info.nextDouble();
System.out.println("Enter the ending annual rate as a percent (n.nnn)");
double endRate = info.nextDouble();
System.out.println("Enter the annual intrest rate increments as a percent (n.nnn)");
double rateIncrease = info.nextDouble();
System.out.println("Enter the first term in years for calculating payments");
double firstTerm = info.nextDouble();
System.out.println("Enter the last term in years for calculating payments");
double lastTerm = info.nextDouble();
System.out.println("Enter the term increment in years");
int termIncrement = info.nextInt();
System.out.println("Enter the loan amount");
double loanAmount = info.nextDouble();
double mtp = firstTerm * 12;
}
public double calcAnnuity(double mtp ) {
double annuityFactor = (0.003125*(1+0.003125)Math.pow(mtp));
return annuityFactor;
}
}
解释
您使用的方法Math.pow
错误。它需要两个参数,基数和指数。你写道:
0.003125 * (1 + 0.003125) Math.pow(mtp)
但你需要写:
0.003125 * Math.pow(1.0 + 0.003125, mtp)
笔记 请注意,
1.0+0.003125
可以简化为1.003125
,因此:
0.003125 * Math.pow(1.003125, mtp)
更好的方法是将这个神奇的数字作为常量存储在某个地方,然后只需更改一个变量,而不需要更改多个变量:
private static final int FACTOR = 0.003125;
然后使用该常数:
FACTOR * Math.pow(1.0 + FACTOR, mtp)
文档 从官方文件: 返回第一个参数的值,并将其提升为第二个参数的幂。特殊情况:[……]
等等,
(0.003125*(1+0.003125)Math.pow(mtp))
在IDE中没有用红色标记?参数为两倍。double annuityFactor=(0.003125*Math.pow((1.0+0.003125),mtp))代码>是的,但只有“(1+0.003125)Math.pow(mtp))“我不确定我是否应该在收缩器内放置其他东西以供参考calcAnnuity@RedaMeskali我真的为自己难过。。。。就是这么简单,谢谢你。你不需要从java.lang
导入任何东西,现在我明白了。非常感谢你的反馈。我似乎不明白它需要两个论点,我会努力记住这一点,以备将来之用。欢迎。请记住,您可以随时查找文档(答案中的链接):)
public static double pow(double a, double b)