java.lang.Math的几个经常使用方法 小结

在学习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

相关文章
相关标签/搜索