我有以下代码:
import javax.swing.JOptionPane;
public class Excercise613 {
/**
* Display the prompt to the user; wait for the user to enter
* a whole number; return it.
*/
public static int askInt(String prompt) {
String s = JOptionPane.showInputDialog(prompt);
Double d = Double.parseDouble(s);
return d >= 0 ? (int) d : (int) (d - 1);
} // End of method
} // End of class
当我编译它时,我在屏幕底部出现错误,表示"不可转换的类型。 required:int;发现:java.lang.Double"然后它突出了"(int)d"一段代码。
我在这里做错了什么?为什么不进行类型转换?
答案 0 :(得分:2)
使用doubleValue()函数。
例如:
import javax.swing.JOptionPane;
public class Excercise613 {
// Display the prompt to the user; wait for the user to enter a whole number;
// return it.
public static int askInt(String prompt) {
String s = JOptionPane.showInputDialog(prompt);
Double d = Double.parseDouble(s);
return d >= 0 ? (int) d.doubleValue() : (int) (d.doubleValue() - 1);
} // End of method
} // End of class
或者您可以删除(int)
演员,然后致电d.intValue()
。例如:
return d >= 0 ? d.intValue() : (d.intValue() - 1);