A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么math.round(11.5)等于12,math.round(-11.5)等-11???

取整的方法是怎样算的?

4 个回复

倒序浏览
math.round的方法是返回最接近参数的 long。
结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 long 类型。
换句话说,结果等于以下表达式的值:

(long)Math.floor(a + 0.5d);
希望对你有帮助

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
round()  如果小数点后的数0<值<5,返回小于指定数据的最大整数
        如果小数点后的数5<=值<10,返回大于指定数据的最小整数
        其实就是---四舍五入

ceil()返回大于指定数据的最小整数. 其实就是---去小数后加1

floor()返回小于指定数据的最大整数. 其实就是---去小数

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
round(11.5)是四舍五入,所以是11.
math.round(-11.5)往上提升,不可能是-12
回复 使用道具 举报
        最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马