精华内容
下载资源
问答
  • Java中的math类

    千次阅读 2015-10-17 09:10:39
    java.lang.Math 包含的方法进行基本的数字操作,如基本的指数,对数,平方根和三角函数等. 声明 以下是java.lang.Math类的声明: public final class Math extends Object 字段 以下是java.lang....

    简介

    java.lang.Math 类包含的方法进行基本的数字操作,如基本的指数,对数,平方根和三角函数等.

    类声明

    以下是java.lang.Math类的声明:

    public final class Math extends Object

    字段

    以下是java.lang.Math类的字段:

    • static double E -- 这就是double值,该值是比任何其他更近到e,自然对数的基础上.

    • static double PI -- 这就是双值,该值是比任何其他更接近到pi,一个圆的圆周比其直径.

    类方法

    S.N. 方法 & 描述
    1 static double abs(double a) 
    此方法返回一个double值的绝对值.
    2 static float abs(float a) 
    此方法返回一个float值的绝对值.
    3 static int abs(int a) 
    此方法返回一个int值的绝对值.
    4 static long abs(long a) 
    此方法返回一个long值的绝对值.
    5 static double acos(double a) 
    此方法返回一个值的反余弦值,返回的角度范围从0.0到pi.
    6 static double asin(double a) 
    此方法返回一个值的反正弦,返回的角度范围在-pi/2到pi/2.
    7 static double atan(double a) 
    此方法返回一个值的反正切值,返回的角度范围在-pi/2到pi/2.
    8 static double atan2(double y, double x) 
    此方法返回角度theta(x,y)从转换的矩形坐标到极坐标(r,θ).
    9 static double cbrt(double a) 
    此方法返回一个double值的立方根.
    10 static double ceil(double a) 
    此方法返回最小的(最接近负无穷大)double值,大于或等于参数,并等于一个整数.
    11 static double copySign(double magnitude, double sign) 
    此方法返回的第一个浮点参数与第二个浮点参数的符号.
    12 static float copySign(float magnitude, float sign) 
    此方法返回的第一个浮点参数与第二个浮点参数的符号.
    13 static double cos(double a) 
    此方法返回一个角的三角余弦.
    14 static double cosh(double x) 
    此方法返回一个double值的双曲余弦.
    15 static double exp(double a) 
    此方法返回欧拉数e的一个double值的次幂.
    16 static double expm1(double x) 
    此方法返回 ex -1.
    17 static double floor(double a) 
    此方法返回最大的(最接近正无穷大)double值小于或相等于参数,并相等于一个整数.
    18 static int getExponent(double d) 
    此方法返回的无偏指数在该项表述的double.
    19 static int getExponent(float f) 
    此方法返回一个浮点数的表示中使用的无偏指数.
    20 static double hypot(double x, double y) 
    没有中间溢出或下溢的情况下,此方法返回的sqrt(x2 +y2.
    21 static double IEEEremainder(double f1, double f2) 
    这两个参数,IEEE 754标准规定的方法计算,其余操作.
    22 static double log(double a) 
    此方法返回一个double值的自然对数(以e为底).
    23 static double log10(double a) 
    此方法返回一个double值以10为底.
    24 static double log1p(double x) 
    此方法返回自然对数的总和的参数.
    25 static double max(double a, double b) 
    此方法返回两个double值较大的那一个.
    26 static float max(float a, float b) 
    此方法返回的两个浮点值最大的那一个.
    27 static int max(int a, int b) 
    此方法返回两个int值中最大的那一个.
    28 static long max(long a, long b) 
    此方法返回的两个long值中最大的那一个.
    29 static double min(double a, double b) 
    此方法返回的两个较小的double值.
    30 static float min(float a, float b) 
    此方法返回的两个较小的浮动值.
    31 static int min(int a, int b) 
    此方法返回的两个较小的int值.
    32 static long min(long a, long b) 
    此方法返回的两个较小的长值.
    33 static double nextAfter(double start, double direction) 
    此方法返回浮点数相邻方向的第二个参数,第一个参数.
    34 static float nextAfter(float start, double direction) 
    此方法返回浮点数相邻方向的第二个参数,第一个参数.
    35 static double nextUp(double d) 
    在正无穷大的方向,此方法返回至d相邻的浮点值.
    36 static float nextUp(float f) 
    此方法返回到f相邻的浮点值在正无穷方向上.
    37 static double pow(double a, double b) 
    此方法返回的第一个参数的值提升到第二个参数的幂
    38 static double random() 
    该方法返回一个无符号的double值,大于或等于0.0且小于1.0.
    39 static double rint(double a) 
    此方法返回的double值,值的参数是最接近的,相等于一个整数.
    40 static long round(double a) 
    此方法返回的参数最接近的long.
    41 static int round(float a) 
    此方法返回的参数最接近的整数.
    42 static double scalb(double d, int scaleFactor) 
    此方法返回d × 2scaleFactor 四舍五入,如果由一个单一的正确舍入的浮点乘法的double值组的成员.
    43 static float scalb(float f, int scaleFactor) 
    此方法返回f × 2scaleFactor 四舍五入,如果由一个单一的正确舍入的浮点乘法,浮点值集合的成员.
    44 static double signum(double d) 
    此方法返回signum函数的参数,如果参数是零返回0,如果参数大于零返回1.0,如果参数小于零返回-1.0.
    45 static float signum(float f) 
    此方法返回signum函数的参数,如果参数是零返回0,如果参数大于零返回1.0f,如果参数小于零返回-1.0f.
    46 static double sin(double a) 
    此方法返回一个double值的双曲正弦.
    47 static double sinh(double x) 
    此方法返回一个double值的双曲正弦.
    48 static double sqrt(double a) 
    此方法返回正确舍入的一个double值的正平方根.
    49 static double tan(double a) 
    此方法返回一个角的三角函数正切值
    50 static double tanh(double x) 
    此方法返回一个double值的双曲正切.
    51 static double toDegrees(double angrad) 
    这种方法大致相等的角度,以度为单位的角度转换成弧度测量.
    52 static double toRadians(double angdeg) 
    此方法转换一个角度,以度为单位大致相等的角弧度测量.
    53 static double ulp(double d) 
    此方法返回的参数的ulp的大小.
    54 static double ulp(float f) 
    此方法返回的参数的ulp的大小.

    继承的方法

    这个类继承的方法,从下面的类:

    • java.lang.Object


    转自:http://www.yiibai.com/javalang/java_lang_math.html

    展开全文
  • 当然,可以用数值类型(如int、double、float)去模拟所有方法的实现,但是这样等同于解一个方程式的值,痛苦不堪,其实在Java中已经帮我们封装好了这些函数的调用,就是这个Math ,先来看看其API有哪些方法可以给...

    点击左上角【目录】
    简单点,代码的方式简单点,装逼的方式请省略,我们又不是演员,别设计那些情节。
    有问题可加入安卓QQ群: 246231638

    在高数中总会运用到各种类型的计算,如正弦、余弦、正切、π、反正切、底数e的参数次方等等,那这些在计算机中如何表述?当然,可以用数值类型(如int、double、float)去模拟所有方法的实现,但是这样等同于解一个方程式的值,痛苦不堪,其实在Java中已经帮我们封装好了这些函数的调用,就是这个Math 类,先来看看其API有哪些方法可以给我们玩的。

    API方法

    来看下下面的API方法,为了方便查看我备注了中文说明。

    S.N. 方法 & 描述
    1 static double abs(double a) 此方法返回一个double值的绝对值.
    2 static float abs(float a) 此方法返回一个float值的绝对值.
    3 static int abs(int a) 此方法返回一个int值的绝对值.
    4 static long abs(long a) 此方法返回一个long值的绝对值.
    5 static double acos(double a) 此方法返回一个值的反余弦值,返回的角度范围从0.0到pi.
    6 static double asin(double a) 此方法返回一个值的反正弦,返回的角度范围在-pi/2到pi/2.
    7 static double atan(double a) 此方法返回一个值的反正切值,返回的角度范围在-pi/2到pi/2.
    8 static double atan2(double y, double x) 此方法返回角度theta(x,y)从转换的矩形坐标到极坐标(r,θ).
    9 static double cbrt(double a) 此方法返回一个double值的立方根.
    10 static double ceil(double a) 此方法返回最小的(最接近负无穷大)double值,大于或等于参数,并等于一个整数.
    11 static double copySign(double magnitude, double sign) 此方法返回的第一个浮点参数与第二个浮点参数的符号.
    12 static float copySign(float magnitude, float sign) 此方法返回的第一个浮点参数与第二个浮点参数的符号.
    13 static double cos(double a) 此方法返回一个角的三角余弦.
    14 static double cosh(double x) 此方法返回一个double值的双曲余弦.
    15 static double exp(double a) 此方法返回欧拉数e的一个double值的次幂.
    16 static double expm1(double x) 此方法返回 ex -1.
    17 static double floor(double a)此方法返回最大的(最接近正无穷大)double值小于或相等于参数,并相等于一个整数.
    18 static int getExponent(double d) 此方法返回的无偏指数在该项表述的double.
    19 static int getExponent(float f) 此方法返回一个浮点数的表示中使用的无偏指数.
    20 static double hypot(double x, double y) 没有中间溢出或下溢的情况下,此方法返回的sqrt(x2 +y2) .
    21 static double IEEEremainder(double f1, double f2) 这两个参数,IEEE 754标准规定的方法计算,其余操作.
    22 static double log(double a)此方法返回一个double值的自然对数(以e为底).
    23 static double log10(double a) 此方法返回一个double值以10为底.
    24 static double log1p(double x) 此方法返回自然对数的总和的参数.
    25 static double max(double a, double b) 此方法返回两个double值较大的那一个.
    26 static float max(float a, float b) 此方法返回的两个浮点值最大的那一个.
    27 static int max(int a, int b) 此方法返回两个int值中最大的那一个.
    28 static long max(long a, long b) 此方法返回的两个long值中最大的那一个.
    29 static double min(double a, double b)此方法返回的两个较小的double值.
    30 static float min(float a, float b) 此方法返回的两个较小的浮动值.
    31 static int min(int a, int b) 此方法返回的两个较小的int值.
    32 static long min(long a, long b) 此方法返回的两个较小的长值.
    33 static double nextAfter(double start, double direction)此方法返回浮点数相邻方向的第二个参数,第一个参数.
    34 static float nextAfter(float start, double direction) 此方法返回浮点数相邻方向的第二个参数,第一个参数.
    35 static double nextUp(double d) 在正无穷大的方向,此方法返回至d相邻的浮点值.
    36 static float nextUp(float f) 此方法返回到f相邻的浮点值在正无穷方向上.
    37 static double pow(double a, double b)此方法返回的第一个参数的值提升到第二个参数的幂
    38 static double random() 该方法返回一个无符号的double值,大于或等于0.0且小于1.0.
    39 static double rint(double a) 此方法返回的double值,值的参数是最接近的,相等于一个整数.
    40 static long round(double a) 此方法返回的参数最接近的long.
    41 static int round(float a) 此方法返回的参数最接近的整数.
    42 static double scalb(double d, int scaleFactor) 此方法返回d × 2scaleFactor 四舍五入,如果由一个单一的正确舍入的浮点乘法的double值组的成员.
    43 static float scalb(float f, int scaleFactor) 此方法返回f × 2scaleFactor 四舍五入,如果由一个单一的正确舍入的浮点乘法,浮点值集合的成员.
    44 static double signum(double d) 此方法返回signum函数的参数,如果参数是零返回0,如果参数大于零返回1.0,如果参数小于零返回-1.0.
    45 static float signum(float f) 此方法返回signum函数的参数,如果参数是零返回0,如果参数大于零返回1.0f,如果参数小于零返回-1.0f.
    46 static double sin(double a) 此方法返回一个double值的双曲正弦.
    47 static double sinh(double x) 此方法返回一个double值的双曲正弦.
    48 static double sqrt(double a) 此方法返回正确舍入的一个double值的正平方根.
    49 static double tan(double a) 此方法返回一个角的三角函数正切值
    50 static double tanh(double x) 此方法返回一个double值的双曲正切.
    51 static double toDegrees(double angrad) 这种方法大致相等的角度,以度为单位的角度转换成弧度测量.
    52 static double toRadians(double angdeg) 此方法转换一个角度,以度为单位大致相等的角弧度测量.
    53 static double ulp(double d) 此方法返回的参数的ulp的大小.
    54 static double ulp(float f) 此方法返回的参数的ulp的大小.



    相关函数的使用

    ※ . 可以看得出来,API还是挺强大的,我们想要的都有在里面。

    来看下我总结的Math类 ↓

    M类:Math 类
    包名:Java.lang.Math
    作用:包含的方法进行基本的数字操作,如基本的指数,对数,平方根、四舍五入、三角函数等等……
    调用:Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用

    ※ . 那如何使用?可以看到,它是个静态类,那么我们可以直接用类名点的方式调取它,先看个例子 ↓

    public class TestIMMQY {  
        public static void main (String []args)  
        {  
                System.out.println("测试Math类");
                System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));  
                System.out.println("0度的余弦值:" + Math.cos(0));  
                System.out.println("60度的正切值:" + Math.tan(Math.PI/3));  
                System.out.println("1的反正切值: " + Math.atan(1));  
                System.out.println("π:"+Math.PI); 
                System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));            
                System.out.println("两个之中的最大值"+Math.max(100.15,100.25));
        }  
    }

    控制台输出结果:

    测试Math90 度的正弦值:1.0
    0度的余弦值:1.0
    60度的正切值:1.7320508075688767
    1的反正切值: 0.7853981633974483
    π:3.141592653589793
    π/2的角度值:90.0
    两个之中的最大值100.25
    


    随机函数

    ※ . 当然,有个函数是我们常常使用到的,那就是随机数,我们在API中可以看到,Random方法是产生随机数字,那么我们来测试下,这里我们用个for循环打印5次看看结果

      for (int i = 0; i < 5; i++) {
                    System.out.println("->"+Math.random());
      }

    控制台输出的结果:

    ->0.28416240369629464
    ->0.7486394990609012
    ->0.20984167308126322
    ->0.37751025923559334
    ->0.4962734671679535



    可以看出,该方法返回的是一个无符号的double值,大于或等于0.0且小于1.0.
    所以,我们只需要让它乘以100以后,转换成int类型,则会输出100以内的整数。

     for (int i = 0; i < 5; i++) {
                    System.out.println("->"+(int)(Math.random()*100));
     }

    控制台输出结果:

    ->27
    ->3
    ->3
    ->25
    ->87


    取整函数

    那除了随机数、高数用到的相关函数之外,取整函数也是比较常用的。
    主要分为三大类:

    1. ceil
    2. floor
    3. round

    • ceil,意思是天花板,java中叫做向上取整,大于等于该数字的最接近的整数
    math.ceil(13.2)=14
    math.ceil(-13.2)=-13
    • floor,意思是地板,java中叫做向下取整,小于等于该数字的最接近的整数
    math.floor(13.2)=13
    math.floor(-13.2)=-14
    • round,最特殊,其实就是四舍五入
    math.round(13.2)=13;math.round(13.5)=14
    math.round(-13.2)=-13,math.round(-13.5)=-13


    总结

    Math类主要是辅助数字运算的一个类,与 StrictMath 类的某些数学方法不同,并非 Math 类所有等价函数的实现都定义为返回逐位相同的结果。此类在不需要严格重复的地方可以得到更好的执行,像我们初中常写的函数都是可以用得上的,如开方,三角函数之类,几乎都是可以用得上的,最后上一小段代码自己感受下。

    Math.sqrt 求开方
    Math.pow 求某数的任意次方, 抛出ArithmeticException处理溢出异常
    Math.sqrt(x):平方根
    Math.pow(x,y):xy次方
    //……
    java.math.BigInteger(大整数):
    BigInteger bi1=new BigInteger("1234567890123456890");
    BigInteger bi2=BigInteger.valueOf(123L);
    bi1=bi1.add(bi2);//b1+b2
    bi1=bi1.multiply(bi2);//b1*b2
    bi1=bi1.subtract(bi2);//b1-b2
    bi1=bi1.divide(bi2);// b1/b2
    
    java.math.BigDecimal(大浮点数):
    BigDecimal bd = new BigDecimal("3.1415926");
    bd = bd.setScale(2,BigDecimal.ROUND_DOWN);//取3.1415926小数点后面二位



    如果前面的基础没看的可以点击 《JAVA 入坑教程系列》



    || 版权声明:本文为博主杜锦阳原创文章,转载请注明出处。

    展开全文
  • Js中Math对象

    千次阅读 2020-10-01 17:16:25
    Math不是一个函数对象,也就是说Math不是一个构造器,Math的所有属性与方法都是静态的,例如引用圆周率的写法是Math.PI,Math的常量是使用JavaScript中的全精度浮点数来定义的,需要注意的是,很多Math的函数都有一...

    Js中Math对象

    Math是一个内置对象,它拥有一些数学常数属性和数学函数方法,Math用于Number类型,其不支持BigInt

    描述

    Math不是一个函数对象,也就是说Math不是一个构造器,Math的所有属性与方法都是静态的,例如引用圆周率的写法是Math.PIMath的常量是使用JavaScript中的全精度浮点数来定义的,需要注意的是,很多Math的函数都有一个精度,而且这个精度在不同实现中也是不相同的,这意味着不同的浏览器会给出不同的结果,甚至在不同的系统或架构下,相同的Js引擎也会给出不同的结果,另外三角函数sin()cos()tan()asin()acos()atan()atan2()返回的值是弧度而非角度。若要转换,弧度除以Math.PI / 180即可转换为角度,同理角度乘以这个数则能转换为弧度。

    console.log(Math.PI); // 3.141592653589793
    console.log(Math.abs(-1)); // 1
    console.log(Math.pow(2, 3)); // 8
    

    属性

    • Math.E: 欧拉常数,也是自然对数的底数,约等于2.718
    • Math.LN2: 2的自然对数,约等于0.693
    • Math.LN10: 10的自然对数,约等于2.303
    • Math.LOG2E: 以2为底的E的对数,约等于1.443
    • Math.LOG10E: 以10为底的E的对数,约等于0.434
    • Math.PI: 圆周率,一个圆的周长和直径之比,约等于3.14159
    • Math.SQRT1_2: ½的平方根,同时也是2的平方根的倒数,约等于0.707
    • Math.SQRT2: 2的平方根,约等于1.414

    方法

    Math.abs()

    Math.abs(x)
    Math.abs(x)函数返回指定数字x的绝对值。

    console.log(Math.abs(-1)); // 1
    

    Math.acos()

    Math.acos(x)
    Math.acos()返回一个数的反余弦值。
    ∀x∊[-1;1], Math.acos(x) = arccos(x) = the unique y∊[0;π] such that cos(y) = x

    console.log(Math.acos(-1)); // 3.141592653589793
    

    Math.acosh()

    Math.acosh(x)
    Math.acosh()函数返回一个数的反双曲余弦值。
    ∀x≥1, Math.acosh(x) = arcosh(x) = the unique y≥0 such that cosh(y) = x

    console.log(Math.acosh(1)); // 0
    

    Math.asin()

    Math.asin(x)
    Math.asin()方法返回一个数值的反正弦。
    ∀x∊[-1;1], Math.asin(x) = arcsin(x) = the unique y∊[- π/2 ; π/2 ] such that sin(y) = x

    console.log(Math.asin(0)); // 0
    

    Math.asinh()

    Math.asinh(x)
    Math.asinh()返回一个数值的反双曲正弦值。
    Math.asinh(x) = arsinh(x) = the unique y such that sinh(y) = x

    console.log(Math.asinh(0)); // 0
    

    Math.atan()

    Math.atan(x)
    Math.atan()函数返回一个数值的反正切。
    Math.atan(x) = arctan(x) = the unique y∊[- π/2 ; π/2 ] such that tan(y) = x

    console.log(Math.atan(0)); // 0
    

    Math.atanh()

    Math.atanh(x)
    Math.atanh()函数返回一个数值反双曲正切值。
    ∀x∊(-1,1), Math.atanh(x) = arctanh(x) = the unique y such that tanh(y) = x

    console.log(Math.atanh(0)); // 0
    

    Math.atan2()

    Math.atan2(y, x)
    Math.atan2()返回从原点(0,0)(x,y)点的线段与x轴正方向之间的平面角度(弧度值),也就是Math.atan2(y,x)

    console.log(Math.atan2(15, 90)); // 0.16514867741462683
    

    Math.cbrt()

    Math.cbrt(x)
    Math.cbrt()函数返回任意数字的立方根。

    console.log(Math.cbrt(27)); // 3
    

    Math.ceil()

    Math.ceil(x)
    Math.ceil()函数返回大于或等于一个给定数字的最小整数,即向上取整。

    console.log(Math.ceil(6.6)); // 7
    

    Math.clz32()

    Math.clz32(x)
    Math.clz32()函数返回一个数字在转换成32无符号整形数字的二进制形式后,开头的0的个数, 比如1000000转换成32位无符号整形数字的二进制形式后是00000000000011110100001001000000,开头的0的个数是12个,则Math.clz32(1000000)返回12

    console.log(Math.clz32(10)); // 28
    

    Math.cos()

    Math.cos(x)
    Math.cos()函数返回一个数值的余弦值。

    console.log(Math.clz32(10)); // 28
    

    Math.cosh()

    Math.cosh(x)
    Math.cosh()函数返回数值的双曲余弦函数。

    console.log(Math.cosh(0)); // 1
    

    Math.exp()

    Math.exp(x)
    Math.exp()函数返回e^xx表示参数,e是自然对数的底数约2.718281828459045

    console.log(Math.exp(2)); // 7.38905609893065
    

    Math.expm1()

    Math.expm1(x)
    Math.exp()函数返回e^x -1x表示参数,e是自然对数的底数约2.718281828459045

    console.log(Math.expm1(2)); // 6.38905609893065
    

    Math.floor()

    Math.floor()返回小于或等于一个给定数字的最大整数,即向下取整。

    console.log(Math.floor(6.6)); // 6
    

    Math.fround()

    Math.fround(doubleFloat)
    Math.fround()可以将任意的数字转换为离它最近的单精度浮点数形式的数字。JavaScript内部使用64位的双浮点数字,支持很高的精度。但是有时需要用32位浮点数字,比如从一个Float32Array读取值时,这时会产生混乱,检查一个64位浮点数和一个32位浮点数是否相等会失败,即使二个数字几乎一模一样,要解决这个问题,可以使用Math.fround()来将64位的浮点数转换为32位浮点数,在内部JavaScript继续把这个数字作为64位浮点数看待,仅仅是在尾数部分的第23位执行了舍入到偶的操作,并将后续的尾数位设置为0,如果数字超出32位浮点数的范围,则返回Infinity-Infinity

    // 数字1.5可以在二进制数字系统中精确表示,32位和64位的值相同
    console.log(Math.fround(1.5) === 1.5); // true
    // 数字6.6却无法在二进制数字系统中精确表示,所以32位和64位的值是不同的
    console.log(Math.fround(6.6) === 6.6); // false
    // 在某些精度不高的场合下,可以通过将二个浮点数转换成32位浮点数进行比较,以解决64位浮点数比较结果不正确的问题
    console.log(0.1 + 0.2 === 0.3);  //false
    var equal = (v1, v2) =>  Math.fround(v1) === Math.fround(v2);
    console.log(equal(0.1 + 0.2, 0.3)); // true
    

    Math.hypot()

    Math.hypot([value1[,value2, ...]])
    Math.hypot()函数返回所有参数的平方和的平方根。本函数比Math.sqrt()更简单也更快,只需要调用Math.hypot(v1, v2)Math.hypot(v1, v2, v3, v4, ...),其还避免了幅值过大的问题,Js中最大的双精度浮点数是Number.MAX_VALUE = 1.797...e+308,如果计算的数字比约1e154大,计算其平方值会返回Infinity,使计算的的结果出现问题。

    console.log(Math.hypot(3, 4)); // 5
    

    Math.imul()

    Math.imul(a, b)
    Math.imul()函数将两个参数分别转换为32位整数,相乘后返回32位结果,类似C语言的32位整数相乘。

    console.log(Math.imul(0xffffffff, 1)); // -1
    

    Math.log()

    Math.log(x)
    Math.log()函数返回一个数的自然对数。
    ∀x>0, Math.log(x) = ln(x) = the unique y such that e^y = x

    console.log(Math.log(Math.E)); // 1
    

    Math.log10()

    Math.log10(x)
    Math.log10()函数返回一个数字以10为底的对数。

    console.log(Math.log10(100)); // 2
    

    Math.log1p()

    Math.log1p(x)
    Math.log1p()函数返回一个数字加1后的自然对数, 既log(x+1)

    console.log(Math.log1p(Math.E-1)); // 1
    

    Math.log2()

    Math.log2(x)
    Math.log2()函数返回一个数字以2为底的对数。

    console.log(Math.log2(8)); // 3
    

    Math.max()

    Math.max(value1[,value2, ...])
    Math.max()函数返回一组数中的最大值。

    console.log(Math.max(1, 2, 3)); // 3
    
    // 在数组中应用
    console.log(Math.max.apply(null, [1, 2, 3])); // 3 // 利用了apply的传参特性
    console.log(Math.max(...[1, 2, 3])); // 3 // 利用了 ES6 Spread 操作符
    

    Math.min()

    Math.min([value1[,value2, ...]])
    Math.min()返回零个或更多个数值的最小值。

    console.log(Math.min(1, 2, 3)); // 1
    
    // 在数组中应用
    console.log(Math.min.apply(null, [1, 2, 3])); // 1 // 利用了apply的传参特性
    console.log(Math.min(...[1, 2, 3])); // 1 // 利用了 ES6 Spread 操作符
    

    Math.pow()

    Math.pow(base, exponent)
    Math.pow()函数返回基数base的指数exponent次幂,即base^exponent

    console.log(Math.pow(2, 3)); // 8
    

    Math.random()

    Math.random()
    Math.random()函数返回一个浮点数,伪随机数在范围从0到小于1,也就是说从0(包括0)往上,但是不包括1,然后可以缩放到所需的范围,实现将初始种子选择到随机数生成算法,其不能被用户选择或重置。

    console.log(Math.random()); // 0.20022678953392647
    
    function randomInt(min=0, max=1) { // 生成随机整数
        return min + ~~((max-min)*Math.random()); // min <= random < max 
    }
    randomInt(1, 9); // 5
    

    Math.round()

    Math.round(x)
    Math.round()函数返回一个数字四舍五入后最接近的整数。

    console.log(Math.round(0.5)); // 1
    

    Math.sign()

    Math.sign(x)
    Math.sign()函数返回一个数字的符号, 指示数字是正数,负数还是零。此函数共有5种返回值, 分别是1, -1, 0, -0, NaN代表的各是正数,负数,正零,负零,NaN

    console.log(Math.sign(0.5)); // 1
    

    Math.sin()

    Math.sin(x)
    Math.sin()函数返回一个数值的正弦值。

    console.log(Math.sin(Math.PI / 2)); // 1
    

    Math.sinh()

    Math.sinh(x)
    Math.sinh()函数返回一个数字的双曲正弦值。

    console.log(Math.sinh(0)); // 0
    

    Math.sqrt()

    Math.sqrt(x)
    Math.sqrt()函数返回一个数的平方根。
    ∀x≥0, Math.sqrt(x) = x = the unique y≥0 such that y^2 = x

    console.log(Math.sqrt(9)); // 3
    

    Math.tan()

    Math.tan(x)
    Math.tan()方法返回一个数值的正切值。

    console.log(Math.tan(0)); // 0
    

    Math.tanh()

    Math.tanh(x)
    Math.tanh()函数将会返回一个数的双曲正切函数值。

    console.log(Math.tanh(0)); // 0
    

    Math.trunc()

    Math.trunc(value)
    Math.trunc()方法会将数字的小数部分去掉,只保留整数部分。

    console.log(Math.trunc(1.1)); // 1
    

    每日一题

    https://github.com/WindrunnerMax/EveryDay
    

    参考

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math
    
    展开全文
  • Math对象(常用方法)

    2019-07-25 04:18:35
    Math对象,提供数据的数学计算。 注意:Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法。这是它与Date,String对象的区别。 Math 对象属性 属性 描述 E 返回...

    Math对象(常用方法)

    Math对象,提供对数据的数学计算。
    注意:Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法。这是它与Date,String对象的区别。

    Math 对象属性

    属性 描述
    E 返回算术常量 e,即自然对数的底数(约等于2.718)。
    LN2 返回 2 的自然对数(约等于0.693)。
    LN10 返回 10 的自然对数(约等于2.302)。
    LOG2E 返回以 2 为底的 e 的对数(约等于 1.414)。
    LOG10E 返回以 10 为底的 e 的对数(约等于0.434)。
    PI 返回圆周率(约等于3.14159)。
    SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)。
    SQRT2 返回 2 的平方根(约等于 1.414)。
    语法: var pi_value=Math.PI;
    

    Math 对象常用方法

    1,向上取整ceil()
    ceil() 方法可对一个数进行向上取整。
    语法:, Math.ceil(x)
    示例

    document.write(Math.ceil(0.8) + "<br />")
    document.write(Math.ceil(6.3) + "<br />")
    document.write(Math.ceil(5) + "<br />")
    document.write(Math.ceil(3.5) + "<br />")
    document.write(Math.ceil(-5.1) + "<br />")
    document.write(Math.ceil(-5.9))
    

    2,向下取整floor()
    floor() 方法可对一个数进行向下取整。
    语法:, Math.floor(x)

    document.write(Math.floor(0.8)+ "<br>")
    document.write(Math.floor(6.3)+ "<br>")
    document.write(Math.floor(5)+ "<br>")
    document.write(Math.floor(-5.9))
    

    示例

    3,四舍五入round()
    round() 方法可把一个数字四舍五入为最接近的整数。
    语法:, Math.round(x)
    示例

    document.write(Math.round(1.6)+ "<br>");
    document.write(Math.round(2.5)+ "<br>");
    document.write(Math.round(0.49)+ "<br>");
    document.write(Math.round(-6.4)+ "<br>");
    document.write(Math.round(-6.6));
    

    4,随机数 random()
    random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数。
    语法:, Math.random();
    注意:返回一个大于或等于 0 但小于 1 的符号为正的数字值。我们取得介于 0 到 1 之间的一个随机数

    示例

    document.write(Math.random()+'<br/>');
    document.write((Math.random())*10+'<br/>');
    document.write((Math.random())*100+'<br/>');
    document.write((Math.random())*1000);
    
    展开全文
  • java的Math函数

    千次阅读 2013-05-06 16:28:04
    首先给大家看看Math类所提供的主要方法,下面的列表给出了Math类的主要方法,如果要理解Math的所有方法可以参考JavaAPI,列表如下: 函数(方法) 描述 IEEEremainder(double, double) 按照 IEEE 754 标准的规定...
  • 附:Math类的常用方法: S.N. 方法 & 描述 1 static double abs(double a)  此方法返回一个double值的绝对值. 2 static float abs(float a)  此方法...
  • C#(Unity)_Math函数总结

    千次阅读 2019-05-11 15:46:59
    C#_Math函数总结 博主第一篇,编写的不太好,还望多多见谅,多多支持。 Math.abs() 计算绝对值。 Math.acos() 计算反余弦值。 Math.asin() 计算反正弦值。 Math.atan() 计算反正切值。 Math.atan2() 计算从x 坐标轴...
  • Java 中 Math.sqrt()方法

    千次阅读 2019-09-05 09:47:27
    java.lang.Math.sqrt(double a)返回正确舍入的一个double值的正平方根。特殊情况: 如果参数是NaN或小于为零,那么结果是NaN. 如果参数是正无穷大,那么结果为正无穷大. 如果参数是正零或负零,那么...
  • Java Math.sqrt()方法

    千次阅读 2017-09-27 10:01:00
    java.lang.Math.sqrt(double a) 返回正确舍入的一个double值的正平方根。特殊情况: 如果参数是NaN或小于为零,那么结果是NaN. 如果参数是正无穷大,那么结果为正无穷大. 如果参数是正零或负零,那么结果是...
  • Math.random()取值范围

    2020-08-12 20:55:34
    ① ① — Math.random() 方法返回值是 [0,1) ② ②— 可以使用int对Math.random()修饰即为**(int)Math.random()**,使产生的随机说不会出先小数。
  • 【转】Lua math

    千次阅读 2014-08-09 16:23:54
    atan2、sinh、cosh、tanh这4个应该...描述 示例 结果 pi 圆周率 math.pi 3.1415926535898 abs 取绝对值 math.abs(-2012) 2012 ceil 向上取整 math.ceil(9.1) 1
  • Unity Math与Mathf用法

    千次阅读 2019-12-25 15:15:18
    返回值表示相对直角三角形角的角,其中 x 是临边边长,而 y 是边边长。 返回值是在x轴和一个二维向量开始于0个结束在(x,y)处之间的角。 public class example : MonoBehaviour { publicTransform target; ...
  • 关于java.lang.Math包的详解
  • C 标准库 - <math.h>

    千次阅读 2017-11-28 11:29:48
    简介math.h 头文件定义了各种数学函数和一个宏。在这个库中所有可用的功能都带有一个 double 类型的参数,且都返回 double 类型的结果。库宏下面是这个库中定义的唯一的一个宏: 序号 宏 & 描述 1 HUGE_VAL当函数...
  • Math.Random()方法的使用

    千次阅读 2016-10-24 15:39:13
    Math.Random()会随机生成[0,1]之间的随机数,一般情况下大家让Math.Random()乘以一个数,例如a。这样我们就可以生成[0,a]之间的随机数,如果再在前面添加一个int,那么我们就可以产生[0,a]之间的正整数,但是往往...
  • python描述符详解

    千次阅读 2017-01-06 15:14:06
    希望看完这篇文章后,你对描述符有了更清晰的认识。知道怎么判断一个对象是不是描述符,知道如果定义一个描述符,知道什么是该用描述符。当然,最大的目的是,通过学习描述符,让你python这门语言有更多深入的认识...
  • 初始化阶段,主要是为变量赋予正确的初始值。这里的“正确”初始值指的是程序员希望这个变量所具备的起始值。一个正确的初始值是通过变量初始化语句或者静态初始化语句给出的。初始化一
  • C#里Math.Round()函数问题--5的處理

    千次阅读 2009-07-06 21:35:00
    2.5应该等于3才!在ASP中也存在这个问题,不过ASP中还有个FormatNumber可以用,但目前还不知道怎么使用?解释:Math.Round()准确的说,这个函数不是四舍五入,而是四舍六入五凑偶,就是说小于4或大于6的该舍该入是
  • 问题描述 最近在网上看文章 当协同过滤(Collaborative Filtering)遇上深度学习,可是出现了很多错误,如图所示: mathjax显示错误 而对应的正确效果应该是 mathjax正确显示 问题解决办法 首先明确文章中 ...
  • Math.abs()方法不一定总是返回整数

    千次阅读 2011-12-14 11:10:03
    下面的程序将生成整数3取余的柱状图,那么,它将打印出什么呢? public class Mod { public static void main(String[ ] args) { final int MODULUS = 3; int[] histogram = new int[MODULUS]; // Iterate ...
  • 文中描述问题已经得到修补,本文内容仅供参考!) 直接用以下重载方法即可return Math.Round(value, decimals, MidpointRounding.AwayFromZero); 感谢CSDN网友 comerliang 的发现 2009-03-05 补充 整理一篇旧帖子....
  • 正确重写hashCode方法

    万次阅读 2019-02-15 16:38:14
     (即对类中每一个重要字段,也就是影响对象的值的字段, 也就是equals方法里有比较的字段 ,进行操作) 2、String对象和Bigdecimal对象已经重写了hashcode方法,这些类型的值可以直接用于重写hashcode方法; ...
  • FindBugs错误描述

    千次阅读 2017-06-08 10:53:16
    FindBugs错误描述本文档列出了FindBugs 3.0.1版报告的标准错误模式 。概要描述 类别 BC:Equals方法不应该假定它的参数类型 坏习惯 位:检查按位操作的符号 坏习惯 CN:实现可克隆但不定义或使用克隆方法 坏...
  • CommonJS 的模块化规范描述在Modules/1.1.1 中 目前实现此规格的包有: Yabble,CouchDB,Narwhal (0.2), Wakanda, TeaJS (formerly v8cgi), CommonScript, PINF JS Loader, SeaJS, ArangoDB,
  • 可以简单地认为,线性分类器给样本分类,每一个可能一个分数,正确的分类分数,应该比错误的分类分数大.为了使分类器在分类未知样本的时候,鲁棒性更好一点,我们希望正确分类的分数比错误分类分数大得多一点....
  • Android运行时ART执行方法的过程分析

    万次阅读 多人点赞 2014-11-10 01:00:24
    一旦找到了目标方法,我们就可以获得它的DEX字节码或者本地机器指令,这样就可以它进行执行了。在ART运行时中,方法的执行方式有两种。一种是像Dalvik虚拟机一样,将其DEX字节码交给解释器执行;另一种则是...
  • 点进文章的盆友不如先来做一道非常常见的面试题,如果你能做出来,可能你早已掌握并理解了java的加载机制,若结果出乎你的意料,那就很有必要来了解了解java的加载机制了。代码如下嗯哼?其实上面程序并不是关键...
  • Leetcode算法题分类解析:(一)总览

    万次阅读 2016-06-17 23:01:03
    尽管面试者可能也这种考察方式不是很满意,可在没有更好的方式之前,这个现状会一直保持下去。我们改变不了这个现状,那就适应它吧。1.2 分类攻破为什么要这么麻烦地分类呢?照着Leetcode的题目顺序做不就好了?...
  • 前言: 打印日志是一门艺术,但长期被开发同学所忽视。日志就像车辆保险,没人愿意为保险付钱,但是一旦出了问题都又想有保险可用。我们打印日志的时候都很随意,可是用的时候会吐槽各种 SB...日志的特点是,它描述...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,443
精华内容 20,177
关键字:

对math类描述正确的是