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));
}
}
运行结果:
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四舍五入后所得的整数近似值。
public static long round(double a)
long
。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为long
类型。换句话说,结果等于以下表达式的值:
(long)Math.floor(a + 0.5d)
特殊情况如下:
Long.MIN_VALUE
的值,那么结果等于Long.MIN_VALUE
的值。 Long.MAX_VALUE
的值,那么结果等于Long.MAX_VALUE
的值。a
- 舍入为 long
的浮点值。
long
值的参数值。
public static int round(float a)
int
。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为int
类型。换句话说,结果等于以下表达式的值:
(int)Math.floor(a + 0.5f)
特殊情况如下:
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全不加。