2016-05-07 17 views
-3

こんにちは、除算をしようとすると、倍x = 3 *(5/10);何らかの理由でx = 0になります。理由はありますか?これはC++で起こります。私は学んでおり、なぜこのようなことが起こるのかわかりません。C++の部門エラー?

+1

を試してみてください。 5/10は単に0になります(0.5の全体が保持されます)。浮動小数点値を取得するには、リテラルの1つが浮動小数点型でなければなりません。 3 *(5.0/10)はうまくいくはずです。 –

+1

5/10は整数除算なので、結果は0 –

+0

これを試してください: 'double x = 3 *(5.0/10.0)'あなたが期待するものを得るには。 –

答えて

0

これについて考える:どのデータ型が5ですか? どのデータ型が10ですか? INTEGER!

その後、 (int型)5 /(INT)10 =(int型)0.5 = 0

はあなたが小数の値を持っていないと、整数演算を行っている。この

double a = 3; 
double b = 5; 
double c = 10; 
double x = a * (b/c);