2016-12-22 7 views
0
int value = 10 * (50/100); 

期待される答えは5ですが、常にゼロです。誰も私に詳細な説明を与えてくれますか?なぜ分割は常にゼロですか?

ありがとうございます。

+3

あなたが 'int'を使用しているので:' 50/100 = 0' – Aidin

+0

5もintですか?私が間違っている? –

+0

(50/100)が最初に評価され、整数除算の結果が小数部を破棄します。 – Steeve

答えて

3

50/100の結果が0であるためです。

50/100は、0を返すint(50/100)と同じです。 (50/100.0)の結果は0.5ある

int value = (int)(10 * (50/100.0)); 

:あなたは5を返すようにしたい場合は

また、これを使用します。

+0

意味をなさない..... –

1

int値に対して操作を行います。 50/100,intは、0である。

2

あなたは整数の除算をやっているので:だからそれは除算の前に乗じなってき

int value = (int)(10 * (50/100.0)); 

または乗算/除算に

int value = (10 * 50)/100; 

リバース:(50/100)はこれを試してみてください0

を与えます

+0

意味を..... –

関連する問題