Hi,大家好!我是小米,一个爱分享、热爱技术的29岁程序员~今天想跟大家聊聊一道在社招面试中常见的Java面试题,也是一个非常有趣的知识点:
“Math.round(11.5) 等于多少?Math.round(-11.5) 等于多少?”
你可能会觉得这道题很简单:“直接取个整嘛!”但实际上,这里藏着一些容易被忽视的细节。接下来,我们不仅会解答这个问题,还会深入分析其中的原理,最后顺便延伸一下相关知识点,保证你对这个问题烂熟于心,再遇到时可以从容应对!
问题解析:Math.round 的行为是什么?
1、Math.round() 是什么?
Java 中的 Math.round() 是一个用于四舍五入的静态方法。它有两种重载形式:
- Math.round(float a):返回值是 int。
- Math.round(double a):返回值是 long。
它的作用是将一个数值四舍五入到最接近的整数。
2、核心问题:四舍五入的规则?
在大部分情况下,四舍五入的规则都很直观:
- 小数部分 < 0.5,舍去,向下取整。
- 小数部分 ≥ 0.5,进一,向上取整。
但是!对于正负数的四舍五入,Math.round 的表现可能会让人有点意外。
3、Math.round(11.5)和Math.round(-11.5)
先来看答案: