public function convert($value, $from, $to) {
if ($from == $to) {
return $value;
}
if (isset($this->lengths[$from])) {
$from = $this->lengths[$from]['value'];
} else {
$from = 0;
}
if (isset($this->lengths[$to])) {
$to = $this->lengths[$to]['value'];
} else {
$to = 0;
}
return $value * ($to / $from);
}
此代码在“return $ value *($ to / $ from)”行中给出除零错误。任何人都可以调试这个。
答案 0 :(得分:2)
如何简单处理结果:
int l = sizeof(str1);
for(int i=0; i<l; i++){
cout << str1[i];
}
cout << endl;
另一方面,传递给此方法的参数根本没有做任何事情......除了前3行:
public function convert($value, $from, $to) {
if ($from == $to) {
return $value;
}
if (isset($this->lengths[$from])) {
//THE RESULT OF THE EXPRESSION BELOW MAY BE NULL OR 0
//GUARD AGAINST "DIVISION-BY-ZERO" WARNING FAR BELOW
//BECAUSE: $a = 0; isset($a) RETURNS TRUE...
$from = $this->lengths[$from]['value'];
} else {
$from = 0;
}
if (isset($this->lengths[$to])) {
$to = $this->lengths[$to]['value'];
} else {
$to = 0;
}
//HERE: AVOID WARNING/ERROR BEEPERS
if($from != 0){
return $value * ($to / $from);
}
return "NaN - Not a Number";
}
否则,由于您的覆盖,它们在代码中不再使用。你有没有意识到这一点?
另一个注意事项&amp;值得关注的是:可以想象$ to,$ from from&amp; $ value是数字。虽然,你个人比所有人更了解你的计划;我真诚地敢问你这个:
这类似于如何访问$ lengths数组中的数据: 的 $这 - &GT;长度[100] [ '值'] 强>?
答案 1 :(得分:-1)
您将$form
和$to
设置为0(ZERO),因此如果不满足或其中任何一个条件不满足,则会发生0 / $from
或$to /0
或{ {1}}无论如何,你得到的错误是正确的。