我对Java有一个很奇怪的问题。简单地说,这就是正在发生的事情:
int i = (int) Math.ceil((30 * 50) / 1000);这将与
int i = (int) Math.ceil(1.5);但是它不返回2,它返回1!但是,seccond行返回2!这真的很奇怪..。
如果有帮助,下面是实际的代码行:
pStats.setPlayerEnergy(
player,
pStats.getPlayerEnergy(player)
+ (int) Math.ceil((pStats.getPlayerFoodTick(player) * pStats
.getPlayerHydrationTick(player)) / 1000));有没有人知道这是怎么回事,怎么解决的?
发布于 2014-02-02 12:53:52
整数/整数将给出整数值,使任何值(分母或分子)作为浮点数,您将得到答案。
int i = (int) Math.ceil((30 * 50) / 1000.0);
or
int i = (int) Math.ceil((30.0 * 50) / 1000);
or
int i = (int) Math.ceil((30 * 50.0) / 1000);发布于 2014-02-02 12:51:14
我是Integer部门。在Java中:
(30 * 50) / 1000 =1
int i = (int) Math.ceil((30.0 * 50) / 1000);会给你预期的结果。
https://stackoverflow.com/questions/21510763
复制相似问题