在对话框中将字符串转换为double

时间:2013-04-26 01:35:26

标签: java swing parsing methods joptionpane

我需要帮助来理解代码。

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?

4 个答案:

答案 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,则不必解析它。