一、JavaScript 有一个内建的Math对象,它包含了一个小型的数学函数和常量库。
二、你不能创建自己的Math对象,只能用内置的Math对象。
Math对象的属性
属性 | 描述 |
---|---|
PI | 调用:Math.PI // π |
Math对象的方法
标准数学函数也是Math的方法,包括三角函数,对数,指数,其他函数。
方法 | 描述 | |
---|---|---|
abs() | 绝对值 | |
sin(), cos(), tan() |
标准三角函数;参数为弧度 | |
asin(), acos(), atan(), atan2() |
反三角函数; 返回值为弧度 | |
sinh(), cosh(), tanh() |
双曲三角函数; 参数为弧度. | |
asinh(), acosh(), atanh() |
反双曲三角函数;返回值为弧度. | |
pow(), exp(), expm1(), log10(), log1p(), log2() | 指数与对数函数 | 一、Math.pow(n, power) 返回n的给定(power)次幂 【示例1】 alert( Math.pow(2, 10) ); // 2 的 10 次幂 = 1024 |
floor(), ceil() |
返回小于等于参数的最大整数; 返回大于等于参数的最小整数 |
|
min(), max() |
返回一个以逗号间隔的数字参数列表中的较小或较大值(分别地) | |
random() | 返回0和1之间的随机数。[0, 1) | |
round(), fround(), trunc() |
四舍五入和截断函数 | |
sqrt(), cbrt(), hypot() |
平方根,立方根,所有参数平方和的平方根 两个参数平方和的平方根 |
|
sign() | 数字的符号, 说明数字是否为正、负、零。 | |
clz32(), |
imul() | 在32位2进制表示中,开头的0的数量.
返回传入的两个参数相乘结果的类C的32位表现形式 | |
舍入
一、对数字进行舍入的内建函数(这些函数涵盖了处理数字小数部分的所有可能方法):
1、Math.floor
向下舍入:3.1变成3,-1.1变成-2。
2、Math.ceil
向上舍入:3.1变成4,-1.1变成-1。
3、Math.round
向最近的整数舍入:3.1变成3,3.6变成4,-1.1变成-1。
4、Math.trunc(IE 浏览器不支持这个方法)
移除小数点后的所有内容而没有舍入:3.1变成3,-1.1变成-1。
这个是总结它们之间差异的表格:
Math.floor | Math.ceil | Math.round | Math.trunc | |
---|---|---|---|---|
3.1 | 3 | 4 | 3 | 3 |
3.6 | 3 | 4 | 4 | 3 |
-1.1 | -2 | -1 | -1 | -1 |
-1.6 | -2 | -1 | -2 | -1 |
四、小数位数:将数字舍入到小数点后n位
1、乘除法
2、toFixed(n)
| 【示例】我们有1.2345,并且想把它舍入到小数点后两位,仅得到1.23。
1、有两种方式可以实现这个需求:
(1)乘除法
【示例1】要将数字舍入到小数点后两位,我们可以将数字乘以100(或更大的 10 的整数次幂),调用舍入函数,然后再将其除回。```javascript
let num = 1.23456;
alert( Math.floor(num * 100) / 100 ); // 1.23456 -> 123.456 -> 123 -> 1.23
(2)函数toFixed(n):将数字舍入到小数点后n位,并以字符串形式返回结果。```javascript
let num = 12.34;
alert( num.toFixed(1) ); // "12.3" // 这会向上或向下舍入到最接近的值,类似于Math.round:
let num = 12.36;
alert( num.toFixed(1) ); // "12.4"
① toFixed的结果是一个字符串。如果小数部分比所需要的短,则在结尾添加零:javascript
let num = 12.34;
alert( num.toFixed(5) ); // "12.34000",在结尾添加了 0,以达到小数点后五位
a. 我们可以使用一元加号或Number()调用,将其转换为数字:+ num.toFixed(5)。 |
| —- |