为什么Math.ceil(15/10)
1.0而不是2.0?
当我改为Math.ceil((double)15/10)
时,我按预期得到2.0。
答案 0 :(得分:5)
因为将整数除以另一个整数会得到一个整数:15/10
为1
。
整数除法向0舍入。也就是说,生成的商为 操作数n和d是二进制数字提升后的整数 (§5.6.2)是一个整数值q,其幅度尽可能大 同时满足| d·q | ≤| n |。此外,当| n |时,q为正≥| d | 并且n和d具有相同的符号,但是当| n |时q为负≥| d |和n 并且d有相反的符号。
您应该使用Math.ceil(15.0/10)
或Math.ceil(15f/10)
(第一个使用双打,第二个使用浮动)。