在学习JavaSE中,java.lang.Math中的知识应该好好掌握。虽然在咱们的日常应用中不是不少地应用到, 可是却表明了一种数学思想 java
最经常使用方法: 学习
java.lang.Math:记住,全部方法都为静态方法,因此才有Math.方法名(); spa
ceil(double a):该方法接收一个double型的参数,返回最小的double值,该值大于等于参数,并等于某个整数。这里要解释一下,为何是最小的double值,却又要大于等于参数。ceil(double a)方法的做用是返回一系列大于等于参数的数值,也就是在这些返回数中取最小的。至关于一个集合,依次递增,取最小的值 ,但最小的值又大于等于标值。 code
例: double num = Math.ceil(2.56); 数学
System.out.println(num); // num = 3.0 编译
floor(double a):返回最大的double值,该值小于等于参数,并等于某个整数。该方法的做用是将传入的参数进行截取,使生成的值小于或等于参数值。 float
例: 方法
dobule num1 = Math.floor(2.56); 集合
System.out.println(num1); // num1 = 2.0; co
也就是说,floor方法是将参数进行了小数截取后取整。
round(float a):返回最接近参数的int。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为int类型。换句话说,结果等于如下表达式的值:
(int)Math.floor(a + 0.5f)
刚开始有些想不通,既然等价,为何不直接使用floor方法,却要隐式地进行这样地转换。仔细一看,才发现有数值类型的变化。就好比:short s = 1; s +=1; 能够正常编译,而 s = s+1;就不能正确编译同样。缘由在于s += 1;表达式进行了隐式地转换,等 同于:s = (short)(s+1)。因此,当有类型需求时,就应该注意round的使用。
例:
double a = 2.34;
int b = (int)Math.round(2.34);
System.out.println(b); // a = 2