将字符串转换为双精度 - JAVA

Convert String to Double - JAVA

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:

        //9


        txtTot.setText(jComboBox1.getSelectedItem().toString());
        tot= Double.parseDouble(txtTot.getText());
        CMB= (Double)jComboBox1.getSelectedItem();
        Total2=tot+CMB;
        txtTot.setText(Double.toString(Total2));

    }   

ComboBox 我设置 jtextfield 第二行我从 textfield 中取出 string 并尝试将其转换成double.

错误如下:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
    at test.Test.jComboBox1ActionPerformed(Test.java:392)
    at test.Test.access0(Test.java:18)
    at test.Test.actionPerformed(Test.java:134)
    at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1258)
    at javax.swing.JComboBox.setSelectedItem(JComboBox.java:586)
    at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:622)

尝试将 txtTot.getText () 打印到控制台并检查它是否采用正确的十进制格式。格式不正确可能是错误的原因。

对我来说,您似乎是 select 从组合框中输入一个值,然后尝试将它们相加以创建总计,每次 select 新的总计都会更新来自组合框的值。

这似乎对我有用,请注意,我已经删除了第一行,因为它干扰了现有的总数。

tot= Double.parseDouble(txtTot.getText());
CMB = Double.parseDouble((String) jComboBox1.getSelectedItem());
Total2=tot+CMB;
txtTot.setText(Double.toString(Total2));