我的代码在这里给我一个浮点异常,但我无法弄明白为什么。
int i = this -> numerator;
while(i > 1){
if ((this -> numerator % i == 0) && (this -> denominator % i == 0)) {
this -> numerator = this -> numerator / i;
this -> denominator = this -> denominator / i;
}
i = i - 1;
}
目标是简化分数。正如你所看到的,事情只能通过i和i来模拟。同样适用于分裂。奇怪的是,即使我在while循环中注释掉代码,它也会继续抛出错误,但如果我完全摆脱while循环,代码工作正常。当我尝试使用for循环时,同样的事情发生了。我错过了什么?
答案 0 :(得分:1)
奇怪的是,即使我在while循环中注释掉代码,它也会继续抛出错误,
然后你的问题不在这个代码块中。到目前为止,我编译并运行时没有错误。
但如果我完全摆脱while循环,代码就可以正常工作
然后,在这个使得浮点异常的代码块之后,你可能正在使用变量i
做一些事情。
使用调试器运行代码以检查它失败的位置。