0

我正在计算一定数量的百分比,我的代码是:

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

其中tax=5,amount=1000,都是长值,预期结果为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

如果您将整数相除,那么您将得到结果零而不是小数(百分比)。

(tax / 100)..... 以整数值计算;任何小数部分都被删除。

在您的情况下,5/100 = 0.05。它将删除 .05,结果为 0

放松链接,那里提供了相同的示例。

于 2012-12-31T05:34:09.820 回答