这是我的简单计算。
private void jComboBox2ActionPerformed(java.awt.event.ActionEvent evt) {
double t1 = Double.parseDouble(totalcost.getText());
double t2 = Double.parseDouble(jComboBox2.getSelectedItem().toString());
double t = t1 * (t2 / 100);
double ToT = t1 - t;
Total.setText(ToT + "");
}
当我运行并选择jComboBox项时,我使用jCombox selectedItem 作为5%;
我认为这是例外。
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "5%"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at Dresss.pre_order.jComboBox2ActionPerformed(pre_order.java:586)
at Dresss.pre_order.access$1500(pre_order.java:13)
此代码的错误是什么。 Thanx in advanced。
答案 0 :(得分:3)
java.lang.NumberFormatException: For input string: "5%"
5%
不是可解析的双精度型,您必须手动转换它:
Double d;
String string = "5%";
if (string.endsWith("%")) {
string.replace("%", "");
d = Double.parseDouble(string);
d /= 100;
}
答案 1 :(得分:2)
如果你想使用t1而不是数字,请使用以下数字:
double t1= Double.parseDouble(totalcost.getText().replaceAll("\\D+", ""));
如果你想使用persentage:
double t1= Double.parseDouble(totalcost.getText().replaceAll("\\D+", ""))/100;
答案 2 :(得分:1)
也许这可以帮到你:
substring(x,y):用于从索引x到索引y获取字符串的一部分的函数。
indexof:获取字符串中字符索引的函数。
String s="5%";
double t=Double.parseDouble(s.substring(0, s.indexOf("%")))/100;
System.out.println(""+t);
输出:
0.05
`