なぜ次のスニペットでは
int a = 7;
int b = 3;
double c = 0;
c = a / b;
c
予想どおり、2.3333 ではなく、値 2 になります。a
と がb
double の場合、答えは 2.333 になります。 しかし、 はc
すでに double なので、整数でも機能するはずですよね?
それで、なぜint/int=double
機能しないのでしょうか?
ベストアンサー1
operator/
これは、 2 を受け取ってint
を返すの整数除算バージョンを使用しているためです。を返すバージョンをint
使用するには、 の少なくとも 1 つをに明示的にキャストする必要があります。double
double
int
double
c = a/(double)b;