1. ホーム
  2. c

[解決済み] floatを使っても5/2は'2'になってしまうのはなぜですか?重複

2022-03-08 01:43:14

質問

以下のようなコードを入力しました(コンパイルに問題があったとかはありません)。

float y = 5/2;
printf("%f\n", y);

シンプルに出力されました。 2.00000

私の計算は間違っていないですよね?それとも/演算子について間違っているのでしょうか?これは割るという意味ですよね?そして、5/2は2.5となるはずですが?

どんなことでもご相談ください。

解決方法は?

5int2int . したがって 5/2 は整数の除算を使用します。もし 55.0f (または 22.0f ) のうちの1つを作る。 intfloat の場合、浮動小数点除算を行い 2.5 となります。また,分子か分母のどちらかを明示的にキャストすることでも,同じ効果を得ることができます(例. ((float) 5) / 2 ).