深入了解Java核心类库??Math类

本文是小编最新给大家整理的关于Java中Math类常用方法的知识,通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧,

深入了解Java核心类库??Math类,久久派带你了解更多相关信息。

目录
  • Java常用类库Math
    • 一、Field Summary
    • 二、Method Summary
      • 2.1 常用方法
      • 2.1.1 部分方法源码
      • 2.2 算数运算
      • 2.3 三角函数
      • 2.4 其他不常用方法
  • 总结

    Java常用类库Math

    类Math包含用于执行基本数字运算的方法,例如基本指数,对数,平方根和三角函数

    一、Field Summary

    Modifier and TypeFieldDescription
    static doubleE自然对数的基数
    static doublePIπ

    二、Method Summary

    2.1 常用方法

    Modifier and TypeFieldDescription
    static doubleceil​(double a)返回≥a的最小整数
    static doublefloor​(double a)返回≤a的最大整数
    static intround​(float a)返回四舍五入后的值
    static Tmax​(T a, T b)返回两个数据类型为T中较大的
    static Tmin​(T a, T b)返回两个数据类型为T中较x小的
    static doublerandom()返回[0.0,1.0)。
    static doublesqrt​(double a)返回正平方根。
    static Tabs(T a)返回数据类型为T的绝对值
    static doublepow​(double a, double b)返回a^b
    static doublelog​(double a)返回基数为e的对数
    static doublelog10​(double a)返回基数为10的对数

    2.1.1 部分方法源码

    	public static long round(double a) {        long longBits = Double.doubleToRawLongBits(a);        long biasedExp = (longBits & DoubleConsts.EXP_BIT_MASK)                >> (DoubleConsts.SIGNIFICAND_WIDTH - 1);        long shift = (DoubleConsts.SIGNIFICAND_WIDTH - 2                + DoubleConsts.EXP_BIAS) - biasedExp;        if ((shift & -64) == 0) { // shift >= 0 && shift < 64            // a is a finite number such that pow(2,-64) <= ulp(a) < 1            long r = ((longBits & DoubleConsts.SIGNIF_BIT_MASK)                    | (DoubleConsts.SIGNIF_BIT_MASK + 1));            if (longBits < 0) {                r = -r;            }            // In the comments below each Java expression evaluates to the value            // the corresponding mathematical expression:            // (r) evaluates to a / ulp(a)            // (r >> shift) evaluates to floor(a * 2)            // ((r >> shift) + 1) evaluates to floor((a + 1/2) * 2)            // (((r >> shift) + 1) >> 1) evaluates to floor(a + 1/2)            return ((r >> shift) + 1) >> 1;        } else {            // a is either            // - a finite number with abs(a) < exp(2,DoubleConsts.SIGNIFICAND_WIDTH-64) < 1/2            // - a finite number with ulp(a) >= 1 and hence a is a mathematical integer            // - an infinity or NaN            return (long) a;        }    }    public static int max(int a, int b) {        return (a >= b) ? a : b;    }	 public static int min(int a, int b) {        return (a <= b) ? a : b;    }    public static int abs(int a) {        return (a < 0) ? -a : a;    }

    2.1.2 具体实现

    public class Test {    public static void main(String[] args) {        System.out.println(\"≥3.2的最小整数为:\"+Math.ceil(3.2));//output:4        System.out.println(\"≤3.2的最大整数为:\"+Math.floor(3.2));//output:3        System.out.println(\"3.2四舍五入为:\"+Math.round(3.2));//output:3        System.out.println(\"-1,5中较大的数为:\"+Math.max(-1,5));//output:5        System.out.println(\"-1,5中较小的数为:\"+Math.min(-1,5));//output:-1        System.out.println(\"随机产生[0,5)范围的数\"+Math.random()*5);//output:[0,5)中任意的随机数        System.out.println(\"25的平方根为:\"+Math.sqrt(25));//output:5        System.out.println(\"-9的绝对值为:\"+Math.abs(-9));//output:9        System.out.println(\"2^3的值为:\"+Math.pow(2,3));//output:8        System.out.println(\"以e为基数的对数为:\"+Math.log(10));        System.out.println(\"以10为基数的对数为:\"+Math.log10(100));//output:2    }}

    2.2 算数运算

    Modifier and TypeFieldDescription
    static TaddExact​(T x, T y)返回x+y,溢出则抛出异常T(int,long)
    static TmultiplyExact​(A x, B y)返回x*y,结果溢出则抛出异常int(int,int),long(long,int/long)
    static longmultiplyFull​(int x, int y)返回(long)x*(long)y
    static TfloorDiv​(A x, B y)返回≤ x/y的最大值,y=0则抛出ArithmeticException异常,int(int,int),long(long,int/long
    static TfloorMod​(A x, B y)返回floor(x%y),即x-(x/y)*y,int(int/long,int),long(long,long)

    2.3 三角函数

    Modifier and TypeFieldDescription
    static doublesin​(double a)返回角度的三角正弦值
    static doublecos​(double a)返回角度的三角余弦值
    static doubletan​(double a)返回角度的三角正切
    static doubleasin​(double a)返回a的反正弦值,返回的角度-pi/2~pi/2
    static doubleacos​(double a)返回a的反余弦值,返回的角度0.0~pi
    static doubleatan​(double a)返回a的反正切值,返回的角度-pi/2~pi/2

    2.4 其他不常用方法

    Modifier and TypeFieldDescription
    static doublecosh​(double x)返回 double值的双曲余弦值
    static doublecbrt​(double a)返回 double值的多维数据集根
    static doublecopySign​(double magnitude, double sign)返回带有第二个浮点参数符号的第一个浮点参数
    static floatcopySign​(float magnitude, float sign)返回带有第二个浮点参数符号的第一个浮点参数
    static intdecrementExact​(int a)返回a-1,如果结果溢出int则抛出异常
    static longdecrementExact​(long a)返回a-1,如果结果溢出long则抛出异常
    static doubleexp​(double a)返回e^a
    static doubleexpm1​(double x)返回 e^x – 1
    static doublefma​(double a, double b, double c)返回a*b+c
    static floatfma​(float a, float b, float c)返回a*b+c
    static intgetExponent​(double d)返回 double表示中使用的无偏指数
    static intgetExponent​(float f)返回 float表示中使用的无偏指数
    static doublehypot​(double x, double y)返回sqrt( x 2 + y 2 ),没有中间溢出或下溢
    static doubleIEEEremainder​(double f1, double f2)根据IEEE 754标准规定,计算两个参数的余数运算
    static intincrementExact​(int a)返回以1递增的参数,如果结果溢出 int则抛出异常
    static longincrementExact​(long a)返回以1递增的参数,如果结果溢出 long则抛出异常
    static doublelog1p​(double x)返回参数和的总和的自然对数
    static longmultiplyHigh​(long x, long y)返回 long作为两个64位因子的128位乘积的最高64位
    static intnegateExact​(int a)返回参数的否定,如果结果溢出 int则抛出异常
    static longnegateExact​(long a)返回参数的否定,如果结果溢出 long则抛出异常
    static doublenextAfter​(double start, double direction)返回第二个参数方向上第一个参数旁边的浮点数
    static floatnextAfter​(float start, double direction)返回第二个参数方向上第一个参数旁边的浮点数
    static doublenextDown​(double d)返回负无穷大方向上与 d相邻的浮点值
    static floatnextDown​(float f)返回负无穷大方向上与 f相邻的浮点值
    static doublenextUp​(double d)返回正无穷大方向上与 d相邻的浮点值
    static floatnextUp​(float f)返回正无穷大方向上与 f相邻的浮点值
    static doublerint​(double a)返回与 double值最接近的 double值,该值等于数学整数
    static doublescalb​(double d, int scaleFactor)返回 d ×2 scaleFactor舍入,就像通过单个正确舍入的浮点乘以双 scaleFactor值集的成员一样
    static floatscalb​(float f, int scaleFactor)返回 f ×2 scaleFactor舍入,就像通过单个正确舍入的浮点乘以浮点值集的成员一样
    static doublesignum​(double d)返回参数的signum函数; 如果参数为零,则为零;如果参数大于零,则为1.0;如果参数小于零,则为-1.0
    static floatsignum​(float f)返回参数的signum函数; 如果参数为零则为零,如果参数大于零则为1.0f,如果参数小于零则为-1.0f
    static doublesinh​(double x)返回 double值的双曲正弦值
    static intsubtractExact​(int x, int y)返回参数的差异,如果结果溢出 int则抛出异常
    static longsubtractExact​(long x, long y)返回参数的差异,如果结果溢出 long则抛出异常
    static doubletanh​(double x)返回 double值的双曲正切值
    static doubletoDegrees​(double angrad)将以弧度测量的角度转换为以度为单位测量的近似等效角度
    static inttoIntExact​(long value)返回long参数的值; 如果值溢出int则抛出异常
    static doubletoRadians​(double angdeg)将以度为单位测量的角度转换为以弧度为单位测量的近似等效角度
    static doubleulp​(double d)返回参数的ulp大小
    static floatulp​(float f)返回参数的ulp大小

    总结

    本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注趣讯吧的更多内容!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/8173.html

    (0)
    上一篇 2021-07-29 20:48:08
    下一篇 2021-07-29 20:48:10

    相关推荐

    • 退休金没有到账找谁

      法律问题分析:退休金没有到账找社保局,也可拨打12333查询。刚办理退休时养老金可能延迟发放:由于部分职工退休时,由于个人资料、档案材料不齐、有的需要补交养老保险的差额,有的需要补交医疗等问题,导致退休审批时间延后,不管需要审批多少时间,退休金的计发

      2022-01-08
      6300
    • 修图软件哪个好(手机最专业的p图软件)

      修图软件哪个好(手机最专业的p图软件)。久久派带你了解更多相关信息。要问现在最火的一款修图软件是啥:那非“醒图”莫属了。反正从我这里收到的投稿来看呢,使用醒图做后期的人,是越来越多了。醒图那么,这款软件究竟牛在哪里?今

      2022-01-18 热点头条
      1980
    • 薅完百度家电养护节这波羊毛,尾款人们露出了久违的笑容

      去哪找这些靠谱的上门家庭服务呢?这可让很多人犯了愁。原本只是抱着试试看的心态在百度App上搜索,万万没想到,简单一搜,却让我发现了省钱小妙招,那就是百度App的“家电养护节”活动。

      2021-08-30 热点头条
      3260
    • 面条怎么煮(面条怎么煮几分钟)

      导语:煮面条,到底是冷水还是热水入锅?牢记3要点,面条爽滑又筋道!“碗中天地宽,面里扭乾坤”,一碗小小的面看似简单,但是它却是一座城市的底蕴所在,更是中华美食文化的精髓所在。说到这面条,立马会叫你联想到的就是老北京的炸酱面,武汉的热干面,

      2021-12-15 热点头条
      1340
    • 国庆节结婚婚假在内吗(国庆节结婚婚假怎么算)久久派

      很多人都会选择在国庆节结婚,因为这个时间气温也比较适宜,非常舒适,但是很多人在婚假的请假问题上有一些担忧,不知道婚假是不是在国庆节当中,那么如何请婚假比较合适呢?下面就跟随久久派小编一起来了解一下国庆节结婚婚假在内吗,国庆节结婚婚假怎么算,国庆节结婚婚假可以退后吗。国庆节结婚婚假在内吗假如请了,那就包含婚假在内。由于婚假是连续调休的,不能连续和腾跃式。也就

      2021-08-05
      4080
    • iPhone13评测视频?iPhone13全面评测

      iPhone13是最新发布上市的新品手机,这款iPhone13已经正式开售了,有一部分博主已经拿到真机,下面是小编整理的iPhone13评测视频和全面评测详情,大家参考一下吧~

      2021-09-22 热点头条
      4130

    发表回复

    登录后才能评论