Math

Math类简介

Math类位于Java.lang包中,包含用于执行基本数学运算的方法!Math类的所有执行方法都是静态方法,可以直接使用类名.方法名调用,如:Math.round()

public final class Math extends Object

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
与 StrictMath 类的某些数学方法不同,并非 Math 类所有等价函数的实现都定义为返回逐位相同的结果。此类在不需要严格重复的地方可以得到更好的执行。
默认情况下,很多 Math 方法仅调用 StrictMath 中的等价方法来完成它们的实现。建议代码生成器使用特定于平台的本机库或者微处理器指令(可用时)来提供 Math 方法更高性能的实现。这种更高性能的实现仍然必须遵守 Math 的规范。

实现规范的质量涉及到两种属性,即返回结果的准确性和方法的单调性。浮点 Math 方法的准确性根据 ulp(units in the last place,最后一位的进退位)来衡量。对于给定的浮点格式,特定实数值的 ulp 是包括该数值的两个浮点值的差。当作为一个整体而不是针对具体参数讨论方法的准确性时,引入的 ulp 数用于任何参数最差情况下的误差。如果一个方法的误差总是小于 0.5 ulp,那么该方法始终返回最接近准确结果的浮点数;这种方法就是正确舍入。一个正确舍入的方法通常能得到最佳的浮点近似值;然而,对于许多浮点方法,进行正确舍入有些不切实际。相反,对于 Math 类,某些方法允许误差在 1 或 2 ulp 的范围内。非正式地,对于 1 ulp 的误差范围,当准确结果是可表示的数值时,应该按照计算结果返回准确结果;否则,返回包括准确结果的两个浮点值中的一个。对于值很大的准确结果,括号的一端可以是无穷大。除了个别参数的准确性之外,维护不同参数的方法之间的正确关系也很重要。因此,大多数误差大于 0.5 ulp 的方法都要求是半单调的:只要数学函数是非递减的,浮点近似值就是非递减的;同样,只要数学函数是非递增的,浮点近似值就是非递增的。并非所有准确性为 1 ulp 的近似值都能自动满足单调性要求。

字段摘要

   1、static double E:比任何其他值都更接近 e(即自然对数的底数)的 double 值。
   2、static double PI:比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。

常用方法摘要

        1static double abs(double a):
        返回 double 值的绝对值。该方法参数还可以是:floatintlong类型。

        2static double max(double a, double b):
        返回两个 double 值中较大的一个。该方法参数还可以是:floatintlong类型。

        3static double min(double a, double b):
        返回两个 double 值中较小的一个。该方法参数还可以是:floatintlong类型。

        4static double sqrt(double a):返回正确舍入的 double 值的正平方根。

        5static double cbrt(double a):返回 double 值的立方根。

        6static double pow(double a, double b):返回第一个参数的第二个参数次幂的值。

        7static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.08static double log(double a):返回 double 值的自然对数(底数是 e)。

        9static double log10(double a):返回 double 值的底数为 10 的对数。

        10static double exp(double a):返回欧拉数 e 的 double 次幂的值。

        11、三角函数相关:

        static double toDegrees(double angrad):将用弧度表示的角转换为近似相等的用角度表示的角。

        static double toRadians(double angdeg):将用角度表示的角转换为近似相等的用弧度表示的角。

        static double sin(double a):返回角的三角正弦。

        static double cos(double a):返回角的三角余弦。

        static double tan(double a):返回角的三角正切。

        在正弦、余弦、正切函数前加a,如asin,则是对应的反三角函数,返回的角度范围在 0.0 到 pi 之间。

        static double cosh(double x):返回 double 值的双曲线余弦。

        static double sinh(double x):返回 double 值的双曲线正弦。

        static double tanh(double x):返回 double 值的双曲线正切。

        12static double rint(double a):返回最接近参数并等于某一整数的 double 值。

        13static double ceil(double a):
        返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。(向上取整)

        14static double floor(double a):
        返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。(向下取整)

        15static long round(double a):返回最接近参数的 long16static int round(float a):返回最接近参数的 int。(四舍五入)

案例:

public class MathTest {
 
	public static void main(String[] args) {
		System.out.println("round:四舍五入,返回整数");
		System.out.println(Math.round(11.46));  // 11
		System.out.println(Math.round(-11.46));  // -11
		System.out.println(Math.round(11.68));  // 12
		System.out.println(Math.round(-11.68));  // -12
 
		System.out.println("ceil:向上取整,返回浮点数");
		System.out.println(Math.ceil(11.46));  // 12.0
		System.out.println(Math.ceil(11.68));  // 12.0
		System.out.println(Math.ceil(-11.46));  // -11.0
		System.out.println(Math.ceil(-11.68));  // -11.0
 
		System.out.println("floor:向下取整,返回浮点数");
		System.out.println(Math.floor(11.46));  // 11.0
		System.out.println(Math.floor(11.68));  // 11.0
		System.out.println(Math.floor(-11.46));  // -12.0
		System.out.println(Math.floor(-11.68));  // -12.0

        //-----------------------------------------------------------------------
        ================Math.random============================
           //random随机函数:取得一个大于或者等于0.0小于不等于1.0的随机数
          double random = Math.random();
         System.out.println("Math.random() = " + random); 
         //大于0小于1的double类型的数
         System.out.println("Math.random()*2 = " + random*2);
         //大于1小于2的double类型的数
         System.out.println("((Math.random()*2)+1) = " + ((random*2)+1));

================Math.round============================
       //round(四舍五入)(小数点后第一位)大于五全部加,等于五正数加,小于五全不加。
      Math.round(11.46) = 11
      Math.round(-11.46) = -11
      Math.round(11.68) = 12
      Math.round(-11.68) = -12
      Math.round(11.5) = 12
      Math.round(-11.5) = -11
  
================Math.rint==============================
              //rint:返回最接近的整数。
              Math.rint(11.46) = 11.0
              Math.rint(-11.46) = -11.0
              Math.rint(11.68) = 12.0
              Math.rint(-11.68) = -12.0
              Math.rint(11.5) = 12.0
              Math.rint(-11.5) = -12.0
              
              ================Math.ceil==============================
                //ceil(天花板的意思) : 如果有小数位,则进一位
              
              Math.ceil(11.46) = 12.0
              Math.ceil(11.68) = 12.0
              Math.ceil(11.5) = 12.0
              Math.ceil(-11.46) = -11.0
              Math.ceil(-11.68) = -11.0
              Math.ceil(-11.5) = -11.0
              Math.ceil(11.1) = 12.0
              Math.ceil(-11.1) = -11.0
              Math.ceil(11.0) = 11.0
              Math.ceil(-11.0) = -11.0
              =====================================================
               /*
                 *Math.sqrt(a)//计算a平方根
                 *Math.cbrt(a)//计算a立方根
                 *Math.pow(a,b)//计算a的b次方
                 *Math.max(a ,b);//计算最大值
                 *Math.min(a,b);//计算最小值
                 * Math.hypot(x,y);// 根据x、y两条边长,求其斜边的长度
                 * Math.atan2(y,x);//计算出来的结果angel是一个弧度值,也可以表示相对直角三角形对角的角,其中 x 是临边边长,而 y 是对边边长。
              */  
              Math.sqrt(16) = 4.0
              Math.cbrt(8) = 2.0
              Math.pow(4,2) = 16.0
              Math.max(3.5,5.1) = 5.1
              Math.min(1.2,2.2) = 1.2
              Math.hypot(2,5)=5.385164807134504
               
              =====================================================
              Math.sin(Math.PI/2) = 1.0 //90 度的正弦值
              Math.cos(0) = 1.0        //0度的余弦值
              Math.tan(Math.PI/3) = 1.7320508075688767  //60度的正切值
              Math.atan(1) = 0.7853981633974483  //1的反正切值
              Math.toDegrees(Math.PI/2) = 90.0   //π/2的角度值
              Math.PI = 3.141592653589793     //π的值
	}
}

参考:
java.lang.Math
java.lang.Math类中的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值