public class MathTest {
}
运行结果:
1、小数点后第一位=5
2、正数:Math.round(11.5)=12
3、负数:Math.round(-11.5)=-11
4、
5、小数点后第一位<5
6、正数:Math.round(11.46)=11
7、负数:Math.round(-11.46)=-11
8、
9、小数点后第一位>5
10、正数:Math.round(11.68)=12
11、负数:Math.round(-11.68)=-12
根据上面例子的运行结果,我们还可以按照如下方式总结,或许更加容易记忆:
1、参数的小数点后第一位<5,运算结果为参数整数部分。
2、参数的小数点后第一位>5,运算结果为参数整数部分绝对值+1,符号(即正负)不变。
3、参数的小数点后第一位=5,正数运算结果为整数部分+1,负数运算结果为整数部分。
终结:大于五全部加,等于五正数加,小于五全不加。
Math.round
语法:
Math.round(x);
参数:
x 为一数值。
解释:
方法。返回对参数x四舍五入后所得的整数近似值。
round
public static long round(double a)
-
返回最接近参数的
long
。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为long
类型。换句话说,结果等于以下表达式的值:(long)Math.floor(a + 0.5d)
特殊情况如下:
- 如果参数为 NaN,那么结果为 0。
- 如果结果为负无穷大或任何小于等于
Long.MIN_VALUE
的值,那么结果等于Long.MIN_VALUE
的值。 - 如果参数为正无穷大或任何大于等于
Long.MAX_VALUE
的值,那么结果等于Long.MAX_VALUE
的值。
-
-
a
- 舍入为long
的浮点值。 -
舍入为最接近的
long
值的参数值。
参数:
返回:
-
round
public static int round(float a)
-
返回最接近参数的
int
。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为int
类型。换句话说,结果等于以下表达式的值:(int)Math.floor(a + 0.5f)
特殊情况如下:
- 如果参数为 NaN,那么结果为 0。
- 如果结果为负无穷大或任何小于等于
Integer.MIN_VALUE
的值,那么结果等于Integer.MIN_VALUE
的值。 - 如果参数为正无穷大或任何大于等于
Integer.MAX_VALUE
的值,那么结果等于Integer.MAX_VALUE
的值。
-
-
a
- 要舍入为整数的浮点值。 -
舍入为最接近的
int
值的参数值。
参数:
返回:
-
---------------------
4.3<4.4<4.5 so
math.round(4.3)=4
math.round(4.4)=4
math.round(4.5)=5
-4.6<-4.5 <-4.4 so
math.round(-4.6)=-5
math.round(-4.5)=-4
math.round(-4.4)=-4
-4.51 |-4.50 -4.49
4.49 | 4.50 4.51
因为是负数,所以临界点都是在5的左侧,文字上的“四舍五入”,让人容易糊涂
四舍五入都是往右边计算:
-----(-5)-----(-4.6)(-4.5)(-4.4)-----(-4)----------(0)----------(4)-----(4.4)(4.5)(4.6)-----(5)-----
-----(-5)<---(-4.6)(-4.5)---------->(-4)----------(0)----------(4)<----------(4.5)(4.6)--->(5)-----
-------------------------------(-4.4)--->(-4)---------(0)-----------(4)<---(4.4)----------------------------
注意这些数字的位置关系,正数和负数并不是对称关系,Math.round()的运算时都是由左向右运算,所以:
4.5四舍五入应该是取大值为5,-4.5也一样,取大值为-4,因为-4>-4.5>-5
----------------------------
Math类中提供了三个与取整有关的方法:ceil,floor,round,这些方法的作用于它们的英文名称的含义相对应,例如:ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11;floor的英文是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12;最难掌握的是round方法,他表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果是12,Math.round(-11.5)的结果为-11.Math.round( )符合这样的规律:小数点后大于5全部加,等于5正数加,小于5全不加。
(1)public static long round(double a)
转载自原文链接, 如需删除请联系管理员。
原文链接:java Math.round() Java中的四舍五入函数,转载请注明来源!