浮点异常(核心已转储)#694457

时间:2018-10-19 10:07:17

标签: c++

我不太了解C ++,也不知道为什么,但是发生了此错误:  浮点异常(核心已转储)

我不知道该如何解决。

public function findAuth(\Cake\ORM\Query $query, array $options)
{
    debug($options);
    $query->select(['sno', 'username', 'password','contact']));
    return $query;
}

3 个答案:

答案 0 :(得分:1)

从直觉上讲,“浮点异常”是当您尝试执行整数除以零时,CPU和/或操作系统抛出的异常。

C ++使此操作不确定。您的计算机完全禁止使用它。

使用调试器逐步执行程序时,请检查所有变量,并记住1 / 10为零,而不是0.1,因为它是整数除法。 (此错误会传播到循环的下一个迭代中,在该循环中,您尝试将此零值用作除数。)

将浮点数除以零的定义更加明确,而ISTR则会将特殊值 inf 排除在外。

答案 1 :(得分:0)

无论何时“核心转储”,您都可以使用GDB调查崩溃:gdb binary core。这是您的代码中发生的事情:

Program terminated with signal SIGFPE, Arithmetic exception.
#0  (...)
    at (...):LINE_NUM
LINE_NUM             help = (a /(d * g)) *(d /f);

在第二次迭代期间,您的fg已经等于0。在Linux中,您可以捕获SIGFPE信号并处理错误,或者您可以在之前检查代码中的变量进行除法。

答案 2 :(得分:0)

As answered here

更好地使用:

<key>LSApplicationQueriesSchemes</key>
 <array>
  <string>whatsapp</string>
 </array>

表示整数值。 还要在除法前检查 g f 不等于零。

我希望这会有所帮助;)