1

为什么是Math.ceil(15/10)1.0 而不是 2.0 ?相反,当我运行时,Math.ceil((double)15/10)我得到了预期的 2.0。

4

1 回答 1

5

因为将一个整数除以另一个整数会得到一个整数:15/10is 1

规范

整数除法向 0 舍入。也就是说,在二进制数值提升(第 5.6.2 节)之后为整数的操作数 n 和 d 产生的商是一个整数值 q,其幅值尽可能大,同时满足 |d · q|。≤ |n|。此外,当 |n| 时 q 为正 ≥ |d| 并且 n 和 d 具有相同的符号,但是当 |n| 时 q 为负 ≥ |d| n 和 d 符号相反。

您应该使用Math.ceil(15.0/10)Math.ceil(15f/10)(第一个使用双打,第二个使用浮动)。

于 2013-03-26T17:15:54.473 回答