1. ホーム
  2. c++

[解決済み] int型へのキャスト vs フロア

2022-05-27 03:57:21

質問

これらの違いは何ですか?

float foo1 = (int)(bar / 3.0);
float foo2 = floor(bar / 3.0);

私の理解では、どちらのケースも同じ結果になります。 コンパイルされたコードに違いはあるのでしょうか?

どのように解決するのですか?

int型にキャストすると、0に向かって切り捨てられます。 floor() は負の無限大に向かって切り捨てます。 これは、もし bar が負であった場合、異なる値が得られます。