【发布时间】:2015-09-07 08:05:21
【问题描述】:
我正在为我的 Java 类做一个问题,我希望你能指出我正确的方向,或者给我一个提示。
程序main使用了我在main外面写的方法。
程序将输入到 JOptionPane 中的变量放入方法中。
该方法获取这些变量,并通过“while”循环运行它们,并将结果返回给 main。
我遇到的问题是,让返回值回到主输出。
我想拥有
return fin;
回到main,这样就可以输出了。
部分问题是我必须使用不同的数据类型,特别是浮点数和双精度数,我似乎无法正确解析。
代码如下:
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);
}
}
【问题讨论】:
-
我真的不知道你在这里问什么...是编译错误还是运行时错误?
-
你不应该返还资本而不是返还fin吗?
-
如果我把程序的另一半放在上面会有帮助吗?这只是给我一个问题的部分。
-
你的方法是做什么的?我的意思是,您只需将 fin 与资本相等并返回,因此 fin 将具有资本在那一刻的价值(垃圾价值)。你不应该返还资本吗?
-
方法是使用上面的代码计算利息。我可以编辑帖子,向您展示程序的另一半。
标签: java methods while-loop main