所以我有一个任务,我必须创建一个带输入和输出框的BMI计算器。 我遇到的问题是它给了我NaN作为答案。我搜索了这个网站和其他人,并发现问题是这样的:
private static double input() {
// TODO Auto-generated method stub
return 0;
}
如果我更改了值,它会给我一个数字但不是我想要的数字。其他一切都有效,只是输出的一点点让我烦恼。
import static javax.swing.JOptionPane.*;
public class BMI_GUI {
private static String input;
public static void main(String[] args){
double vikt;
double langd;
double bmi;
setInput(showInputDialog("Din vikt i kg: "));
vikt = input();
setInput(showInputDialog("Din längd i m (med ett komma): "));
langd = input();
bmi = (vikt / (langd*langd));
JOptionPane.showMessageDialog(null, "Din BMI är " + bmi);
System.out.println("BMI Värden\n");
System.out.println("Undervikt: Under 18.5");
System.out.println("Normal: 18.5 - 24.9");
System.out.println("Övervikt: 25 - 29.9");
System.out.println("Fetma: 30 eller över");
}
private static double input() {
// TODO Auto-generated method stub
return 0;
}
public static String getInput() {
return input;
}
public static void setInput(String input) {
BMI_GUI.input = input;
}
}
答案 0 :(得分:0)
这里有一些问题。您没有在计算中引用要引用的变量(length
和width
),并且您正在调用一个空的input()
方法,它对您没有任何帮助,因此您可以完全摆脱它。 getInput()
方法也是如此。由于您已经在输入input
的静态BMI_GUI
字符串中读取,因此只需将其解析为double。这是有效的,但理想情况下你也应该添加错误检查 - 如果输入String
而不是可以解析为double
的数字怎么办?您应该处理NumberFormatException
- 可能会重新询问用户输入的内容。
public static void main(String[] args) {
double bmi = 0.0;
setInput(showInputDialog("Your weight in kg: "));
double weight = Double.parseDouble(input);
setInput(showInputDialog("Your length in m (with a comma): "));
double length = Double.parseDouble(input);
bmi = (weight / (length * length));
答案 1 :(得分:0)
private static double input() {
// TODO Auto-generated method stub
return Double.parseDouble(getInput());
}