我被困在我试图做的这段代码上。我有一个程序,我正在使用Netbeans,它有一个主要的java表单和一个JFrame,就像一个弹出窗口。框架有一个按钮,可以打印我在 Getter 方法中输入的值。一旦我运行程序并单击程序崩溃的按钮,代码中就不会出错,这就是我得到的:
"Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException:
empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)"
这是我的主要代码:'
public void Iva(){
float tiv = Float.parseFloat(tiva); // tiva is a global, String type variable
if("Papeleria".equals(tiva)){
iva = (float) (tiv*0.16); // iva is a global Float type variable
}
if("Supermercado".equals(tiva)){
iva = (float) (tiv*0.12);
}
if("Supermercado".equals(tiva)){
iva = (float) (tiv*0.14);
}
ivi = Float.toString(iva); // ivi is a global, String type variable
}
public String getIva() {
Iva();
return ivi;
}
这就是 Ive 在帧中执行的动作:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
/*taiva is the text area where i want to show iva
mainy is what i called the main's class*/
taiva.setText(mainy.getIva());
}
您的程序在以下代码行上失败:
float tiv = Float.parseFloat(tiva); // tiva is a global, String type variable
您正在尝试解析一个空字符串 ( tiva
(,这会导致NumberFormatException
。
您可以使用 if 语句来避免此问题,如下所示:
float tiv = 0;
if (!tiva.isEmpty()) {
tiv = Float.parseFloat(tiva);
} else {
tiv = 0;
}
希望这对;)有所帮助