数量的 Java百分比

有没有办法计算(例如)120 的 50 %?我试过:

有没有办法计算(例如)120 的 50 %?我试过:

int k = (int)(120 / 100)*50;

但它不起作用。

54
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));
5
int k = (int)(120*50.0/100.0);
4

如果您想要精确的数字和一致的结果,请不要使用浮点基元类型,而是使用 BigDecimal。

你的代码的问题是(120 / 100)的结果是 1,因为 120 / 100 = 1.2 在现实中,但根据 java,int / int 始终是一个 int。

2

我建议使用 BigDecimal,而不是 float 或 double。除以 100 在 BigDecimal 中总是精确的,但可能导致 float 或 double 中的舍入错误。

这意味着,例如,使用 x 的 BigDecimal 50 % 加上 x 的 30 % 加上 x 的 20 % 将始终等于 x。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(882)
Java中的蛇游戏-蛇离开空间
上一篇
如何用颤振将一个容器夹在另一个容器上 (lofg)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(43条)