我正在计算一定数量的百分比,我的代码是:
calc = ((tax / 100) * amount);
其中tax=5,amount=1000,都是长值,预期结果为50,但我得到0
任何人都可以帮助我,我错在哪里?
整数除法 ( 5 / 100
) 的结果为 0,请确定是浮点除法:
calc = ((tax / 100.0) * amount);
// or
calc = ((tax / 100f) * amount);
尝试关注
calc = (( (float)tax / 100) * amount);
如果您将整数相除,那么您将得到结果零而不是小数(百分比)。
(tax / 100)..... 以整数值计算;任何小数部分都被删除。
在您的情况下,5/100 = 0.05。它将删除 .05,结果为 0
放松链接,那里提供了相同的示例。