0

我需要帮助来理解代码。

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 方法将变量从字符串转换为双精度值?

4

4 回答 4

1

因为在数学上操作 double 比使用字符串要容易得多。

您可以从对话框中以字符串形式获得年度利息,您可以从在线文档中看到这一点(除了一个返回 a String,返回 an 的那个Object与您的函数签名不匹配)。

但是,除了字符串类型的操作之外,您真的不能做太多事情。

如果您想以数学方式对其进行操作(例如在您的情况下将其除以 1200),则需要将其转换为某种描述的数字类型。

现在您可以修改JOptionPane以提供:

double JOptionPane.ShowInputDialogGetDouble (...);

但这会引入大量新代码(每种类型一个),并带有大量额外的错误检查,老实说,这是不必要的,因为您可以使用当前的方法很容易地做到这一点,Double.parseDouble().

于 2013-04-26T01:37:09.820 回答
1

因为JOptionPane.showInputDialog()返回String,因为用户可以在文本字段中自由输入非数字字符。

于 2013-04-26T01:38:18.560 回答
1

因为 Java 接受输入作为 a String- 在double您告诉它将其解析String为双精度之前,它所得到的并不是 a。

于 2013-04-26T01:37:08.210 回答
0

JOptionPane 返回一个 String 对象作为它的返回值

http://docs.oracle.com/javase/6/docs/api/javax/swing/JOptionPane.html#showInputDialog(java.awt.Component , java.lang.Object)

(无法让网址显示为单个链接,您必须复制整个内容。

如果返回类型是 double,则不必解析它。

于 2013-04-26T01:37:12.293 回答