Преобразовать строку в двойную в диалоговом окне

Мне нужна помощь, чтобы понять код.

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;

        .....
    }
}

Итак, мой вопрос: если у вас есть всплывающее диалоговое окно, чтобы попросить пользователя вставить число, то зачем вам использовать метод синтаксического анализа для преобразования переменной из строки в двойную?


person Misha    schedule 26.04.2013    source источник
comment
Поскольку все входные данные в java представлены в виде String   -  person Extreme Coders    schedule 26.04.2013
comment
Есть много разных способов добиться желаемого. Вы можете взглянуть на это для некоторых идей.   -  person MadProgrammer    schedule 26.04.2013
comment
Спасибо за помощь!!   -  person Misha    schedule 26.04.2013


Ответы (4)


Поскольку Java принимает входные данные как String, она не получает double, пока вы не скажете ей разобрать это String на двойное.

person drew moore    schedule 26.04.2013
comment
Пишу сюда впервые, не знал о формате, спасибо, что поправили. - person Misha; 26.04.2013
comment
Спасибо, Drawmore, я оценил вашу помощь и рад, что пришел сюда, это очень помогает! - person Misha; 26.04.2013

Поскольку JOptionPane.showInputDialog() возвращает String, пользователь может вводить нецифровые символы в текстовое поле.

person Eng.Fouad    schedule 26.04.2013
comment
Спасибо, мне понравился ваш ответ!! - person Misha; 26.04.2013

Потому что гораздо проще математически манипулировать двойным значением, чем строкой.

Вы получаете годовой процент из диалогового окна в виде строки, вы можете увидеть это из онлайн-документация (все, кроме одного, возвращают String, тот, который возвращает Object, не соответствует сигнатуре вашей функции).

Однако вы ничего не можете с этим сделать, кроме операций со строками.

Если вы хотите математически манипулировать им (например, разделить его на двенадцать сотен в вашем случае), его необходимо преобразовать в числовой тип некоторого описания.

Теперь вы можете изменить JOptionPane, чтобы предоставить:

double JOptionPane.ShowInputDialogGetDouble (...);

но это вводит большое количество нового кода (по одному на тип) с большим количеством дополнительной проверки ошибок, которая, честно говоря, не нужна, поскольку вы можете легко сделать это с помощью вашего текущего метода, Double.parseDouble().

person paxdiablo    schedule 26.04.2013

JOptionPane возвращает объект String в качестве возвращаемого значения.

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

(Невозможно получить URL-адрес в виде одной ссылки, вам придется скопировать все это.

Если бы возвращаемый тип был двойным, вам не пришлось бы его анализировать.

person amarunowski    schedule 26.04.2013