我需要帮助来理解代码。
public class ComputeLoanUsingInputDialog{
public static void main(String[] args){
String annulInterestRateString = JOptionPane.ShowInputDialog("Enter annual interest rate:")
// convert string to double
double annualInterestRate = Double.parseDouble(annualInterestRateString);
//Obtain monthly interest rate
double monthlyInterestRate = annualInterestRate/1200;
.....
}
}
所以我的问题是,如果你弹出一个对话框要求用户插入一个数字,那你为什么需要使用parse方法将变量从string转换为double?
答案 0 :(得分:1)
因为Java接受输入为String
- 所以它不会得到double
,直到你告诉它将String
解析为一双。
答案 1 :(得分:1)
因为在数学上操作double比使用字符串要容易得多。
您可以从对话框中获得年度兴趣作为字符串,您可以从online documentation中看到此内容(除了一个之外的所有内容都返回String
,返回Object
的内容不匹配你的功能签名。
但是,除了字符串类型的操作之外,你不能真正做很多事情。
如果你想用数学方法对它进行操作(例如在你的情况下将其除以12),则需要将其转换为某种描述的数字类型。
现在您可以修改JOptionPane
以提供:
double JOptionPane.ShowInputDialogGetDouble (...);
但是这引入了大量的新代码(每种类型一个),并且有很多额外的错误检查,老实说,这是不必要的,因为你可以使用当前的方法Double.parseDouble()
轻松地完成它。
答案 2 :(得分:1)
因为JOptionPane.showInputDialog()
返回String
,因为用户可以在文本字段中自由输入非数字字符。
答案 3 :(得分:0)
JOptionPane返回String对象作为返回值
http://docs.oracle.com/javase/6/docs/api/javax/swing/JOptionPane.html#showInputDialog(java.awt.Component,java.lang.Object)
(无法将网址显示为单个链接,您必须复制整个内容。
如果返回类型是double,则不必解析它。