我正在为我的Java课程做一个问题,我希望你能指出我正确的方向,或者给我一个提示。
程序主要使用我在main之外写的方法。
该程序获取在JOptionPane中输入的变量,并将它们放入方法中。
该方法接受这些变量,并通过'while'循环运行它们,并将结果返回给main。
我遇到的问题是,返回值返回主输出。
我想要
return fin;
回到主,所以可以输出。
部分问题是,我必须使用不同的数据类型,特别是float和double,我似乎无法正确解析。
代码如下:
public static double Compound(int time,double rate,float init)
{
double fin,capital;
int counter;
fin=capital;
capital=0;
counter=0;
while (counter<time)
{
capital=init+(rate/100.0)*init;
counter++;
}
return fin;
}
我知道我搞砸了,但我不知道在哪里。
编辑编辑编辑
我设法使代码主要工作。现在我只需要将变量插入上面的代码中。
下面的代码是我用来进入上面代码的代码。
教师希望在一个窗口中输入所有内容。
获取方法的输入会让我感到震惊,我知道。
无论如何,这是代码的其余部分:
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Pr50
{
public static void main(String[] args)
{
JTextField time=new JTextField();
JTextField interest=new JTextField();
JTextField initial=new JTextField();
Object[] fields={
"Time to Maturity", time,
"Interest rate", interest,
"Initial deposit", initial
};
JOptionPane.showInputDialog(null, fields);
int x;
double fin,rate;
float init;
fin=money.Compound(5,10,5500);
}
}
编辑编辑编辑
我遇到了问题,主要是,有点,不是真的。
我通过JOptionPane输出运行程序,然后我得到了gobbeldygook。
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Pr50
{
public static void main(String[] args)
{
JTextField time=new JTextField();
JTextField interest=new JTextField();
JTextField initial=new JTextField();
Object[] fields={
"Time to Maturity", time,
"Interest rate", interest,
"Initial deposit", initial
};
JOptionPane.showInputDialog(null, fields);
JOptionPane.showMessageDialog(null, "The value of the fund is: "+initial);
/*int x;
double fin,rate;
float init;
fin=money.Compound(5,10,5500);*/
}
}
我真的想知道如何解决这个问题。
编辑编辑编辑
我需要从输入窗口获取变量,但是我收到一条错误消息,指出'JText无法转换为int。'
这是代码,完全是邪恶的荣耀:
主:
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Pr50
{
public static void main(String[] args)
{
fin=money.Compound(time,interest,initial);
JTextField time=new JTextField();
JTextField interest=new JTextField();
JTextField initial=new JTextField();
Object[] fields={
"Time to Maturity", time,
"Interest rate", interest,
"Initial deposit", initial
};
JOptionPane.showInputDialog(null, fields);
JOptionPane.showMessageDialog(null, "The value of the fund is: "+initial);
int x;
double fin,rate;
float init;
fin=money.Compound(time,interest,initial);
}
}
调出方法:
public class money
{
public static double Compound(int time,double rate,float init)
{
return init*Math.pow(1+(rate/100), time);
}
}
答案 0 :(得分:0)
根据您的问题,我猜您正在尝试获取方法Compound
返回的值。
在使用time
获取变量rate
,init
和JOptionPane
之后,只需在main方法中调用方法Compound。例如:
double compound = Compound(time, rate, init);
System.out.println("The answer is " + compound);
答案 1 :(得分:0)
在该代码中有很多奇怪的东西,但在我看来,这就是你要做的事情:
public float compound(int time, double rate, float init)
{
return init * Math.pow(1 + (rate / 100), time);
}