特定の金額のパーセンテージを計算しています。私のコードは次のとおりです。
calc = ((tax / 100) * amount);
ここで、tax=5、amount=1000 で、すべて long 値です。予想される結果は 50 ですが、0 が返されます
私が間違っているところで、誰かが私を助けることができますか?
整数除算 ( 5 / 100
) の結果は 0 です。浮動小数点除算であることを確認してください。
calc = ((tax / 100.0) * amount);
// or
calc = ((tax / 100f) * amount);
フォローしてみてください
calc = (( (float)tax / 100) * amount);
整数を除算すると、Decimal(percentage)ではなくZeroという結果が得られます。
(税/ 100).....は整数値として計算されます。小数部分はすべて削除されます。
あなたの場合、5/100=0.05です。.05が削除され、結果は0になります
リンクを休ませてください、同じ例がそこに提供されています。