黑马程序员技术交流社区

标题: Math类中一个小细节 [打印本页]

作者: j816326    时间: 2013-7-2 23:38
标题: Math类中一个小细节
本帖最后由 j816326 于 2013-7-3 12:46 编辑

Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
答案很简单,原理有谁能告诉我。
作者: 肥猫    时间: 2013-7-2 23:50
这个很简单,一个是是天花板值,一个是地板值这么理解就行了.至于详细原理么.round方法返回与参数最接近的长整数,参数加1/2后求其floor.
作者: denghui1010    时间: 2013-7-2 23:51
Math.round()方法是先将参数加上0.5然后去取它的Math.floor()值
floor 如果参数是正数则小数部分全舍,参数是负数则小数部分全入
作者: j816326    时间: 2013-7-2 23:52
很好。懂了
作者: lanbuohan    时间: 2013-7-3 00:16
Math.round 返回最接近参数的 long。 正数小数去除,负数相反
作者: enmoor    时间: 2013-7-3 00:18
round()方法你可以这样理解:就是括号内的数+0.5之后,向下取整。就像你说的啊Math.round(11.5),11.5+0.5=12,Math.round(11.5)=12;
Math.round(-11.5),-11.5+0.5=-11,Math.round(-11.5)=-11。
了解不?形象的说, 你就加上0.5,然后就在坐标轴上找下一个整数就是。

作者: hadexs    时间: 2013-7-3 12:41
Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整,所以,Math.floor(11.6)的结果为11,Math.floor(-11.6)的结果是-12;最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。
作者: 小石头39910    时间: 2013-7-3 13:20
Math的round方法的作用是加0.5之后向下取整,这是java规定的我想原理也不必要掌握,它就是一种规则,必须遵守,嘿嘿




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2