有没有办法计算(例如)120 的 50 %?我试过:
int k = (int)(120 / 100)*50;
但它不起作用。
int k = (int)(120 / 100)*50;
上述不起作用,因为您正在执行一个整数除法表达式(120 / 100),其结果是整数 1,然后将该结果乘以 50,给出 50 的最终结果。
如果要计算 120 的 50 %,请使用:
int k = (int)(120*(50.0f/100.0f));
更一般地:
int k = (int)(value*(percentage/100.0f));
int k = (int)(120*50.0/100.0);
如果您想要精确的数字和一致的结果,请不要使用浮点基元类型,而是使用 BigDecimal。
你的代码的问题是(120 / 100)的结果是 1,因为 120 / 100 = 1.2 在现实中,但根据 java,int / int 始终是一个 int。
我建议使用 BigDecimal,而不是 float 或 double。除以 100 在 BigDecimal 中总是精确的,但可能导致 float 或 double 中的舍入错误。
这意味着,例如,使用 x 的 BigDecimal 50 % 加上 x 的 30 % 加上 x 的 20 % 将始终等于 x。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(54条)