【发布时间】:2018-10-02 23:41:36
【问题描述】:
您好,我正在尝试根据用户请求从我的数据库中添加计算,但我的浮点数将无法工作,除非它是最终的,我该如何解决这个问题?
代码:
float v = (float) 0;
StringBuilder upcoming = new StringBuilder("Upcoming\n\n");
StringBuilder Results = new StringBuilder("Upcoming\n\n");
switchExam.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(!isChecked)
{
for(FAssessment a : assessmentList) {
if(!a.getType().equals("Final"))
{
double d = CalculatePercentage(a.getTotal(),a.getAchieved(),Double.parseDouble(a.getWeight()));
v += (float) d;
}
}
}
else
{
for(FAssessment a : assessmentList) {
double d = CalculatePercentage(a.getTotal(),a.getAchieved(),Double.parseDouble(a.getWeight()));
v += (float) d;
}
}
}
});
这是我得到错误v += (float) d;的地方
从内部类中访问变量“v”,需要是最终的或有效的最终
【问题讨论】:
-
您正在创建一个匿名类用作
OnCheckedChangeListener。该事件在将来会发生在switchExam对象上,在当前函数完成之后(我的意思是float v的作用域是函数),那么新值将存储在哪里?由于该变量将不再可用,因此存储对它的引用是没有意义的。见stackoverflow.com/questions/4732544/…