(Java)为什么Math.ceil(15/10)是1.0而不是2.0?

1 java double casting integer-division

为什么是Math.ceil(15/10)1.0而不是2.0?当我跑步时,我Math.ceil((double)15/10)按预期得到2.0.

Den*_*ret 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)(第一个使用双打,第二个浮动).

  • +1我总是喜欢`Math.ceil(15F/10)`但:) (3认同)