2015-08-24 3 views
1

Как установить целое число в double? Предположим, у меня есть comboBox с именем day, и у него есть 1,2, 3 элемента. Я хочу установить его как две десятичные точки. Если пользователь выбирает 1, он станет 1,00. Как я могу это сделать?Невозможно форматировать данный объект как номер ComboBox

public void actionPerformed(ActionEvent e){ 
         String a=(String)comboBox.getSelectedItem(); 
         //Integer b=(comboBox_1.getSelectedIndex()+1); 
         int day=(Integer)comboBox_2.getSelectedItem(); 
         double bo; 
         DecimalFormat df = new DecimalFormat("#.##");  
         bo= Double.valueOf(df.format(day)); 

Ошибка я получаю

java.lang.IllegalArgumentException: Cannot format given Object as a Number 
    at java.text.DecimalFormat.format(DecimalFormat.java:507) 
    at java.text.Format.format(Format.java:157) 
    at gui.User.<init>(User.java:105) 
    at gui.User$1.run(User.java:49) 
+0

Там не хватает кода, чтобы воспроизвести вашу проблему. 'DecimalFormat.format (long)' (который вы вызываете в фрагменте кода) должен работать для всех значений int. Вы уверены, что исключение из этой строки? – Codebender

+0

Используйте 'DecimalFormat df = new DecimalFormat (" #. 00 ");' и затем 'df.format (day)', Нет необходимости в двойном преобразовании – Vaulstein

+0

int i = 3; double d = (double) i; –

ответ

0

Проверить это

public void actionPerformed(ActionEvent e){ 
        String a=comboBox.getSelectedItem().toString(); 
        //Integer b=(comboBox_1.getSelectedIndex()+1); 
        int day=Integer.ParseInt(comboBox_2.getSelectedItem().toString()); 
        double bo; 
        DecimalFormat df = new DecimalFormat("#.##");  
        bo= Double.parseDouble(df.format(day)); 
+0

проверить сейчас ..... –

+0

bo не может быть двойного типа ... и я хочу, чтобы он был double –

+0

IS THAT ERROR ?. –

Смежные вопросы