当前位置: 首页 >> 科技 >
Math.round是什么意思怎么理解?Math.round()方法是什么?
来源:创视网     时间:2022-12-08 15:50:34

Math.round

就是四舍五入!

public class MathTest {

public static void main(String[] args) {

System.out.println("小数点后第一位=5");

System.out.println("正数:Math.round(11.5)=" + Math.round(11.5));

System.out.println("负数:Math.round(-11.5)=" + Math.round(-11.5));

System.out.println();

System.out.println("小数点后第一位<5");

System.out.println("正数:Math.round(11.46)=" + Math.round(11.46));

System.out.println("负数:Math.round(-11.46)=" + Math.round(-11.46));

System.out.println();

System.out.println("小数点后第一位>5");

System.out.println("正数:Math.round(11.68)=" + Math.round(11.68));

System.out.println("负数:Math.round(-11.68)=" + Math.round(-11.68));

}

}

Math.round()方法

Math.round()方法即为我们常说的“四舍五入”方法,但用起来不注意的话就会犯错。

首先看下下面的几个结果:

Math.round(1.0)

Math.round(1.4)

Math.round(1.5)

Math.round(1.6)

结果分别为1,1,2,2。这没什么好说的。

那么如果传入的参数为负数呢?

Math.round(-1.0)

Math.round(-1.4)

Math.round(-1.5)

Math.round(-1.6)

结果分别为-1,-1,-1,-2。

注意Math.round(-1.5),也就是-1.5“四舍五入”的结果并不是-2,而是-1。这是为什么呢?

实际上,Math.round()方法准确说是“四舍六入”,5要进行判断对待。

Math.round()的原理是对传入的参数+0.5之后,再向下取整得到的数就是返回的结果,返回值为long型。这里的向下取整是说取比它小的第一个整数或者和它相等的整数。

因此Math.round(-1.5)的结果是-1.5 + 0.5 再向下取整,即-1.0取整,结果是-1.

Math.round(-1.4)的结果是 -1.4 + 0.5 即-0.9 向下取整,结果是-1。

同理,Math.round(1.5)即为 1.5 + 0.5 再向下取整,结果是2。

而“向下取整”实际上就是Math.floor()方法,注意Math.floor()返回的值为double类型的。

Math.floor(1.0) == 1.0

Math.floor(1.4) == 1.0

Math.floor(1.5) == 1.0

Math.floor(1.6) == 1.0

Math.floor(-1.0) == -1.0

Math.floor(-1.4) == -2.0

Math.floor(-1.5) == -2.0

Math.floor(-1.6) == -2.0

类似地,还有一个Math.ceil()方法,表示“向上取整”,得到的结果是比参数大的第一个整数或者和参数相等的数,返回值也是double类型的。

Math.ceil(1.0) == 1.0

Math.ceil(1.4) == 2.0

Math.ceil(1.5) == 2.0

Math.ceil(1.6) == 2.0

Math.ceil(-1.0) == -1.0

Math.ceil(-1.4) == -1.0

Math.ceil(-1.5) == -1.0

Math.ceil(-1.6) == -1.0

推荐新闻 +
猜您喜欢 +