一、 toFixed() 方法
可把 Number 四舍五入为指定小数位数的数字。
规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。
toFixed()方法四舍五入取指定位数的小数点,当其中参数为0时表示不留小数点
let num=3.1415926
console.log(num.toFixed(2)); //输出3.14
console.log(num.toFixed(0)); //输出3
num1=9.66;
console.log(num1.toFixed(0)); //输出10
区别:Number(): 可以用于任何数据类型转换成数值;
parseInt()、parseFloat(): 专门用于把字符串转换成数值;
二、Number( )
1.参数为布尔值Boolean时,true为1,false为2
2.参数为null,返回0
3.参数为undefined,返回NaN
4.数字则转换成对应的数值
Number(true); // 1 布尔值
Number(false); // 0
Number(null); // 0
Number(undefined); // NaN
Number(1); // 1
Number(-0.1); // -0.1
5.参数为字符串String时
// 1. 当字符串中有字母时
Number("abc"); // NaN
Number("abc123"); // NaN
Number("123abc"); // NaN
// 2. 当字符串中只有数字时(数字前可以有正负号)
Number("123"); // 123
Number("+123"); // 123
Number("-123"); // -123
Number("0123"); // 123 忽略前导0
// 小数
Number("1.23"); // 1.23
// 十六进制数会转为十进制
Number("0xf"); // 15
// 空字符串转为0
Number(""); // 0
6.参数为对象,
则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果为NaN,则调用对象的toString()方法,然后再按照前面的规则转换返回的字符串值。
// 数字数组
Number([1, 2]); // NaN
Number([1]); // 1
// 字符串数组
Number(["1", "2"]); // NaN
Number(["1"]); // 1
Number(["a"]); // NaN
Number([null]); // 0
三、parseInt( )
parseInt()函数可以将字符串转换成一个整数,与Number()函数相比,parseInt()函数不仅可以解析纯数字字符串,也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。
1.参数为Boolean时,返回NaN
parseInt(true); // NaN
parseInt(false); // NaN
2.参数为String时,一个字符一个字符解析,直到解析完或遇到第一个非数字字符。
注:小数点也不是有效的数字字符。
// 既有数字,又有字符
parseInt("abc123"); // NaN
parseInt("123abc"); // 123
// 整数
parseInt("000123"); // 123 忽略前导0
// 小数
parseInt("1.23"); // 1
// 十六进制,第二个参数指定转换时使用的基数(即几进制)
parseInt("0xAF"); // 175
parseInt("AF"); // NaN
parseInt("0xAF", 16); // 175 指定按十六进制解析
parseInt("AF", 16); // 175 指定按十六进制解析
// 八进制
parseInt("070"); // 70 ES5认为其为70(十进制)
parseInt("70"); // 70
parseInt("070", 8); // 56 指定按八进制解析
parseInt("70", 8); // 56 指定按八进制解析
// 空字符
parseInt(""); // NaN
3.参数为对象
// 数组,解析第一个值
parseInt([1,2]); // 1
parseInt([1, "a"]); // 1
parseInt(["a", 1]); // NaN
链接: 参考
四、parseFloat( )
与parseInt()一样,parseFloat()也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。
与parseInt()不同的是,parseFloat()可以将字符串转换成浮点数;但同时,parseFloat()只接受一个参数,且仅能处理10进制字符串。
(1)字符串中的第一个小数点是有效的,而第二个小数点就是无效的了,因此它后面的字符串将被忽略。
(2)如果字符串包含的是一个可解析为整数的数(没有小数点,或者小数点后面都是零),parseFloat()会返回整数。
1.参数为Boolean时,返回NaN
parseFloat(true); // NaN
parseFloat(false); // NaN
2.参数为String时,一个字符一个字符解析,直到解析完或遇到一个无效的浮点数字字符为止。
即:字符串中第一个小数点是有效的,第二个小数点是无效的。
注:parseFloat()无第二个参数,不能解析十六进制数。
// 既有数字,又有字符
parseFloat("123.456abc"); // 123.456
parseFloat("abc123.456"); // NaN
// 小数
parseFloat(".456"); // 0.456
parseFloat("000012.34"); // 12.34 忽略前导0
parseFloat("123.456.789"); // 123.456 第二个小数点无效
parseFloat("1.23e5"); // 123000
// 十六进制
parseFloat("0xAF"); // 0
// 空字符
parseFloat(""); // NaN
五、总结
- Number()能转换boolean值,null,只含整数或小数的字符串,空字符串,对象。
- parseInt()按字符解析,直到遇见第一个非数字字符为止。
- parseFloat()按字符解析,直到遇见一个无效的浮点数字字符为止。