我有一个复利计算器,但当我运行代码并在它要求时输入以下数字时:
本金:10000利率:0.02年期:10
然后选择已经设置好的“年度”,这样,如果我或用户输入该特定字符串,choice变量将自动变为1(或者如果我输入单词“季度”或“月度”,则为已经设置的其他值)。然而,我应该得到的值是:$12189.94,而得到的值却是:10200.0我的代码哪里做错了?
import java.util.Scanner;
import java.lang.Math;
public class CompoundInterest {
public static void main (String [] args)
{
Scanner cool = new Scanner (System.in);
double saving, rate;
int principal, years;
int choice;
System.out.println("Please enter you principal investment:");
/*Print statment prompts user to enter their principal investment*/
principal = cool.nextInt();
System.out.println("Would you like to have a regular investment plan?");
/* Print out statement asks user if they would like to participate in a regular investment plan*/
String question =cool.next();
System.out.println("Please enter the number of years that you wish to invest for:");
/* Print statement prompts user to enter the number of years that they wish to invest for*/
years = cool.nextInt();
System.out.println("Please enter the return rate per year:");
/* Print statement prompts user to enter the return rate per year*/
rate = cool.nextDouble();
System.out.println("What type of investment plan would you prefer (Annual, Quarterly, or Monthly)?");
String quest =cool.next();
if ("Annual".equalsIgnoreCase(quest))
{ choice =1;
}
else if ("Quarterly".equalsIgnoreCase(quest)){
choice = 4;
}
else if ("Monthly".equalsIgnoreCase(quest)){
choice = 12;
}
else {
choice = 0;
System.out.println("Please choose a investment plan or speak to a financial advisor.");
}
saving = principal*(1+(rate/choice))*Math.pow(choice,years);
System.out.println(saving);
感谢大家提供的建议。似乎我需要使用:
saving = principal * Math.pow(1+(double) (rate/ (choice)), choice * years);
为了使我的等式正常工作,我的等式没有适当地考虑我的整数值,因为保存被归类为双倍。
我的目标是创建一个程序,向用户询问金额,询问每年、每月或每天的利率,询问如何复合,然后询问月、日或年的期限。 然后它会打印未来的价值以及获得的总利息。这是我到目前为止所拥有的,数字是不正确的。如果有人能帮助修改它并使其工作,我会非常感激。
我试图找出如何计算CRC为非常简单的SDLC帧。 使用MLT我捕获流,我看到一些简单的帧被发送出去,如:0x3073F9E3和0x3011EDE3 null 这将给出输出B8ED,所以最后一个字节是ed。 有什么想法吗?
我试图在递归中总结一个数字的数字,而不是正确的数字。例如,如果输入是1234,那么输出应该是6(1+2+3)。如果输入只有1位数,那么函数应该返回0。 我不知道如何才能同时做到这一点:计算数字,从结果中删除最后一个数字,如果输入是一个数字,那么它也应该返回0。下面的代码汇总了除左位以外的所有数字。如果我尝试使用revNum函数,那么对于数字'100',结果是0而不是1。需要任何帮助请:)
目前我正在为学校做一个项目,下面是要求: 编写一个Temperature类,它将保持以华氏为单位的温度,并提供获取以华氏、摄氏度和开尔文为单位的温度的方法。该类应具有以下字段: :保持华氏温度的倍增器。 该类应具有以下方法: :构造函数接受华氏温度(双倍)并将其存储在ftemp字段中。 :set Fahrenheit方法接受一个华氏温度(作为双值),并将其存储在ftemp字段中。 :返回ftemp
我正试图通过以下方式获取文件: 然后在活动结果上的
本文向大家介绍JavaScript中计算复利,包括了JavaScript中计算复利的使用技巧和注意事项,需要的朋友参考一下 复利公式 复利使用以下公式计算- 这里, P是本金。 R是年利率。 t是金钱被投资或借入的时间。 n是每单位t复利的次数,例如,如果每月复利一次,t以年为单位,则n的值为12。如果每季度复利一次,t以年为单位,则n的值将是4。 我们需要编写一个JavaScript函数,该函数