0

特定の金額のパーセンテージを計算しています。私のコードは次のとおりです。

calc = ((tax / 100) * amount);

ここで、tax=5、amount=1000 で、すべて long 値です。予想される結果は 50 ですが、0 が返されます

私が間違っているところで、誰かが私を助けることができますか?

4

3 に答える 3

1

整数除算 ( 5 / 100) の結果は 0 です。浮動小数点除算であることを確認してください。

calc = ((tax / 100.0) * amount);
// or
calc = ((tax / 100f) * amount);
于 2012-12-30T10:57:16.663 に答える
1

フォローしてみてください

calc = (( (float)tax / 100) * amount);
于 2012-12-30T10:59:22.943 に答える
0

整数を除算すると、Decimal(percentage)ではなくZeroという結果が得られます。

(税/ 100).....は整数値として計算されます。小数部分はすべて削除されます。

あなたの場合、5/100=0.05です。.05が削除され、結果は0になります

リンクを休ませてください、同じ例がそこに提供されています。

于 2012-12-31T05:34:09.820 に答える