Skip to content

数值方法

转换为 number 的 4 种方法: Number()、parseInt()、parseFloat()、+字符串数字

转换数字 4 种方法

Number()

Number()是转型函数,可用于任何数据类型,有一下几种情况

js
1.布尔值,true 转换为 1false 转换为 0
Number(true) // 1
Number(false) // 0

2.数值,直接返回
Number(1) // 1

3.null,返回 0
Number(null) // 0

4.undefined,返回 NaN
Number(undefined) // NaN

5.函数,结果都是NaN
Number(function a(){}) // NaN

6.symbol类型,不能将symbol类型转数字,否则报错

7.字符串
 - 数值字符
Number("123")  // 123
Number("011")  // 11  // 会忽略前面的零
 - 浮点值格式 转换为相应的浮点值(同样,忽略前面的零)
Number('12.3') // 12.3
 - 十六进制格式 转换十进制整数值
 - 空字符串 返回0
Number('') // 0
 - 其他字符 返回 NaN
Number(12K) // NaN

8.对象
会先调用valueOf()方法 ,如果如果转换结果是 NaN则调用toString()方法,再按照转换字符串的规则转换

parseInt()

parseInt()方法主要用于将字符串转换为数值

js
如何转换?
1.先判断第一个字符是不是数值字符、加号或减号
不是,返回NaN
2.然后继续依次检测每个字符,直到字符串末尾,或碰到非数值字符
parseInt("1234blue")会被转换为 1234
3.接收第二个参数,用于指定底数(进制数)

parseFloat()

parseFloat()方法主要用于将字符串转换为数值

js
如何转换?
工作方式跟 parseInt()函数类似
但需要注意的是
- 第一次出现的小数点是有效的,但第二次出现的小数点就无效
例如: parseFloat("22.34.5")将转换成 22.34
特别注意
1.parseFloat()只解析十进制值,因此不能指定底数
2.十六进制数值始终会返回 0
3.字符串表示整数(没有小数点或者小数点后面只有一个零),则 parseFloat()返回整数
parseFloat('1.0')  //1

+字符串数字

js
+"5"; // 5

小知识

js
1.保留小数点后N位
数字.toFixed(N)
2.要确定一个值是不是有限大
isFinite()函数
3.判断NaN number.isNaN()

Number.isInteger()

Number.isInteger() 用来判断一个数值是否为整数。返回 true false

js
//JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 11 和 11.0 被视为同一个值。
Number.isInteger(11); //true
Number.isInteger(11.0); //true
Number.isInteger(11.11); //false

//如果参数不是数值,Number.isInteger返回false。
Number.isInteger(); // false
Number.isInteger(null); // false
Number.isInteger("15"); // false
Number.isInteger(true); // false

Math.ceil() Math.floor() Math.round()

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

js
Math.ceil(11.11); //12   上舍入

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

js
Math.floor(11.999); //11   下舍入

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

js
Math.round(11.6); //12  四舍五入

Math.trunc()

Math.trunc() 用于去除一个数的小数部分,返回整数部分。

js
Math.trunc(4.1); //4
Math.trunc(-4.9); //-4

//对于非数值,Math.trunc内部使用Number方法将其先转为数值。
Math.trunc("123.456"); // 123
Math.trunc(true); //1
Math.trunc(false); // 0
Math.trunc(null); // 0

//对于空值和无法截取整数的值,返回NaN。
Math.trunc(NaN); // NaN
Math.trunc("foo"); // NaN
Math.trunc(); // NaN
Math.trunc(undefined); // NaN

Math.sign()

Math.sign() 方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。

js
//五种值
//正数,返回+1
//负数,返回-1
//0  返回0
//-0 返回-0
//其它值 返回NaN

Math.sign(6); //1
Math.sign(-6); //-1
Math.sign(0); //0
Math.sign("abc"); //NaN

//如果参数是非数值,会自动转为数值。对于那些无法转为数值的值,会返回NaN。
Math.sign(""); // 0
Math.sign(true); // +1
Math.sign(false); // 0
Math.sign(null); // 0
Math.sign("9"); // +1
Math.sign("foo"); // NaN
Math.sign(); // NaN
Math.sign(undefined); // NaN

不常用的方法

Number.isFinite() 确定传递的值类型及本身是否是有限数。

Number.isSafeInteger() 确定传递的值是否为安全整数 ( -(253 - 1)253 - 1之间)。



⭐️⭐️⭐️ 好啦!!!本文章到这里就结束啦。⭐️⭐️⭐️

✿✿ ヽ(°▽°)ノ ✿

撒花 🌸🌸🌸🌸🌸🌸

上次更新于: