Java中Math函数的基本使用

昨天看了一个面试题:Math.round(11.5) 少 等 于 多 少 ? Math.round(-11.5) 等于多少?

    答案:Math 类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil 的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor 的英文意义是地板,该方法就表示向下取整,Math.floor(11.6)的结果为 11,Math.floor(-11.6)的结果是-12;最难掌握的是 round 方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以,Math.round(11.5)的结果为 12,Math.round(-11.5)的结果为-11。

 因为工作中用到java数学函数的频率比较少,所以我当时看到round()是有点模糊的,所以还是把java中math的基本函数的使用罗列出来,以供新入门的同学参考。

 

算术计算 

  1. Math.sqrt() : 计算平方根
  2. Math.cbrt() : 计算立方根
  3. Math.pow(a, b) : 计算a的b次方
  4. Math.max( , ) : 计算最大值
  5. Math.min( , ) : 计算最小值
  6. Math.abs() : 取绝对值

System.out.println(Math.sqrt(16)); // 4.0
System.out.println(Math.cbrt(8)); // 2.0
System.out.println(Math.pow(3, 2)); // 9.0
System.out.println(Math.max(2.3, 4.5));// 4.5
System.out.println(Math.min(2.3, 4.5));// 2.3
System.out.println(Math.abs(-10.4)); // 10.4
System.out.println(Math.abs(10.1)); // 10.1

进位 

  1. Math.ceil(): 天花板的意思,就是逢余进一
  2. Math.floor() : 地板的意思,就是逢余舍一
  3. Math.rint(): 四舍五入,返回double值。注意.5的时候会取偶数
  4. Math.round(): 四舍五入,float时返回int值,double时返回long值

/**
* ceil天花板的意思,就是逢余进一
 */
System.out.println(Math.ceil(-10.1)); // -10.0
System.out.println(Math.ceil(10.7)); // 11.0
System.out.println(Math.ceil(-0.7)); // -0.0
System.out.println(Math.ceil(0.0)); // 0.0
System.out.println(Math.ceil(-0.0)); // -0.0
System.out.println(Math.ceil(-1.7)); // -1.0

/**
 * floor地板的意思,就是逢余舍一
 */
System.out.println(Math.floor(-10.1)); // -11.0
System.out.println(Math.floor(10.7)); // 10.0
System.out.println(Math.floor(-0.7)); // -1.0
System.out.println(Math.floor(0.0)); // 0.0
System.out.println(Math.floor(-0.0)); // -0.0

/**
 * rint 四舍五入,返回double值
 */
System.out.println(Math.rint(10.1)); // 10.0
System.out.println(Math.rint(10.7)); // 11.0
System.out.println(Math.rint(11.5)); // 12.0
System.out.println(Math.rint(10.5)); // 10.0
System.out.println(Math.rint(10.51)); // 11.0
System.out.println(Math.rint(-10.5)); // -10.0
System.out.println(Math.rint(-11.5)); // -12.0  这里.5取了偶数

System.out.println(Math.rint(-10.51)); // -11.0
System.out.println(Math.rint(-10.6)); // -11.0
System.out.println(Math.rint(-10.2)); // -10.0
/**
 * round 四舍五入,float时返回int值,double时返回long值
 */
System.out.println(Math.round(10)); // 10
System.out.println(Math.round(10.1)); // 10
System.out.println(Math.round(10.7)); // 11
System.out.println(Math.round(10.5)); // 11
System.out.println(Math.round(10.51)); // 11
System.out.println(Math.round(-10.5)); // -10
System.out.println(Math.round(-10.51)); // -11
System.out.println(Math.round(-10.6)); // -11
System.out.println(Math.round(-10.2)); // -10

随机数

  1. Math.random(): random() 方法用于返回一个随机数,随机数范围为 0.0 =< Math.random < 1.0。

System.out.println(Math.random());  // [0, 1)的double类型的数
System.out.println(Math.random() * 2); //[0, 2)的double类型的数

指数函数 

  1. public static double exp ( double x )  : e^x
  2. public static double log ( double x )  :  ln x 
  3. public static double log10 (double x ) :  log10 (x) 
  4. public static double pow ( double a, double b ): 返回x的y次幂
  5. public static double sqrt ( double x ) : √(x) x的二次方根 

Math.exp ( 1 )    returns 2.71828

Math.log ( Math.E )    returns 1.0

Math.log10 ( 10 )    returns 1.0

Math.pow ( 2, 3 )    returns 8.0

Math.pow ( 3, 2 )    returns 9.0

Math.pow (3.5, 2.5 )    returns 22.91765

Math.sqrt ( 4 )    returns 2.0

Math.sqrt ( 10.5 )    returns 3.24 

 

你可能感兴趣的:(java基础)