赞
踩
首先,这三个方法都是Math类的静态方法,而且类Math在java.lang包下,所以我们在代码中可以直接调用Math的方法。
Math.ceil(double a)实现的是对小数向右取整,如 Math.ceil(-0.7) = -0.0,Math.ceil(0.5) = 1.0, Math.ceil(1.3) = 2.0
Math.floor(double a)实现的是对小数向左取整,如 Math.floor(-0.7) = -1.0,Math.floor(0.5) = 0.0, Math.floor(1.3) = 1.0
Math.round(double a)实现的逻辑是四舍五入,但是对于负数有点不一样,如 Math.round(-1.5) = -1,Math.round(-0.5) = 0,有点绕,所以为了好记点,等效为 Math.floor(a+0.5),而且返回的是整数。
因为round可通过floor来实现,所以round源码就不多加分析,主要分析ceil和floor方法,从下图我们可以知道ceil和floor方法实际上都是调用floorOrCeil方法实现,只是参数不一样。参数后续分析,所以我们接下来分析floorOrCeil这个方法。
看了源代码,有点复杂
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。