-1
while (someCondition) {
    double myVar = someFunc(); // someFunc returns 41

    if (myVar > 0) {
     String precision ="##";
     DecimalFormat df = new DecimalFormat("0."+precision);
     // breakpoint set on next line
     double myVarPercentage = Double.parseDouble(df.format((myVar/50)*100));
    }
}

当我通过 Eclipse 查看 myVar 的值时,它指出尽管 someFunc() 解析为 41,但它无法解析为变量。上述片段在实例方法内的循环内执行,并且范围内没有其他变量名为“myVar” '。

我必须在循环外声明双精度吗?

4

1 回答 1

1

我假设您正在 Eclipse 中进行调试。有时编译的 .class 比 .java 源代码更旧,你会得到这样的效果。通常,编译后的代码会将代码中的行号信息稍微倾斜,例如在多行 if 条件中。

在前面放置一个断点并执行单步。

于 2013-07-15T12:04:49.197 回答