1. ホーム
  2. c++

[解決済み] 2つのintをdoubleに代入すると正しい値が得られないのはなぜですか?

2022-07-23 06:22:38

質問

以下のスニペットでは、なぜ

int a = 7;
int b = 3;
double c = 0;
c = a / b;

c は、期待されるように 2.3333 ではなく、値 2 を持つことになります。もし ab が2倍であれば、答えは2.333になります。しかし、確かに c はすでにdoubleなので、整数で動くはずなのですが?

では、どうして int/int=double は機能しないのでしょうか?

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

の整数分割版を使っているためです。 operator/ を使っているためで、これは 2 int を受け取り int . を使用するために double を返す double の少なくとも一つは int に明示的にキャストする必要があります。 double .

c = a/(double)b;