質問: (coefficient_b * coefficient_b) - (4 * coefficient_a * coefficient_c); return d; } ``` 内部の計算では加法、乗法しか使っていないのにdouble型でないといけないことなどあるでしょうか? 戻り値は別の関数で0以上か0未満かを判定しているだけです。 `int d`の中に`-0.5`などの値が入ってきて、それが切り捨てで0になってしまうことで起こるのだと思うのですが...
回答: 一週間ほど悩んでいたのですが質問を投稿してからすぐに自己解決してしまいました。 `int d`に入る値がオーバーフローしてしまっていたみたいです。 `long long int d`にすると期待通りの動作をしてくれました。