Javascript数值转换(Number,parseInt,parseFloat)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript数值转换(Number,parseInt,parseFloat)相关的知识,希望对你有一定的参考价值。

PS:赶紧抓紧时间看看吧~


* 有3个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()
* 第一个函数,即转型函数Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。
* 这三个函数对于同样的输入会有返回不同的结果;
*
*


* Number()函数的转换规则如下:
* 1,Boolean值,true和false将分别被转换为1或0;
* 2,数字,简单的传入和返回;
* 3,null,返回0;
* 4,undefined,返回NaN;
* 5,字符串:
* a,如果字符串中只包含数字(包括前面带正好或负号的情况),则将其转换为十进制数值,即“1”》》1,而“011”》》11(注意:前面的零会被忽略);
* b,如果字符串中包含有效的浮点格式,如“1.1”,则将其转换为对应的浮点数值(同样,也会忽略前面的零)
* c,如果字符串中包含有效的十六进制,例如“0xf”,则将其转换为相同大小的十进制整数值;
* d,如果字符串是空的(不包含任何字符),则将其转换为0;
* e,如果字符串中包含除上述格式之外的字符,则将其转换为NaN;
* 6,如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。
*

console.log(Number("Hello World!")) // NaN
console.log(Number(‘‘)); //0
console.log(Number(‘00001111‘)); // 1111
console.log(Number(true));// 1


* parseInt()函数转换
* 此函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空格,直至找到第一个非空字符串字符。
* 如果第一个字符不是数字或者负号,就会返回NaN;
* 如果第一个字符时数字字符,就会继续解析第二个字符,直到解析完后续字符或遇到了一个非数字字符。
* 例如:“1234andy”会被转换为 1234;“22.5”会被转换为22



console.log(parseInt(‘1234andy‘)); // 1234
console.log(parseInt(‘‘)); // NaN
console.log(parseInt(‘0xA‘)); // 10(十六进制)
console.log(parseInt(22.5)) ; // 22
console.log(parseInt(‘070‘)); // 56(八进制) // 注意:在使用parseInt()解析八进制字母量的字符串时,ES3认为是56(八进制);ES5认为是70(十进制)
console.log(parseInt(‘70‘)); //70(十进制)
console.log(parseInt(‘0xf‘)); //15(十六进制)

// parseInt()传入两个参数的时候
console.log(parseInt(‘10‘,2)) // 按二进制解析
console.log(parseInt(‘10‘,8)) // 按八进制解析
console.log(parseInt(‘10‘,10)) // 按十进制解析
console.log(parseInt(‘10‘,16)) // 按十六进制解析


* parseFloat()
* 此函数也是从第一个字符(位置0)开始解析每个字符。而且也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。
* 也就是说,字符串中的第一个小数点是有效的,而第二个小数点就是无效的,因此它后面的字符串将被忽略;
* 此函数只解析十进制值,因为它没有第二个参数指定基数的用法。
*

console.log(parseFloat(‘1234blue‘)); // 1234
console.log(parseFloat(‘0xA‘)); // NaN
console.log(parseFloat(‘22.5‘)); // 22.5
console.log(parseFloat(‘22.34.5‘)); // 22.34
console.log(parseFloat(‘0908.5‘)); // 908.5
console.log(parseFloat(‘3.125e7‘));// 31250000

以上是关于Javascript数值转换(Number,parseInt,parseFloat)的主要内容,如果未能解决你的问题,请参考以下文章

javascript的数值转换 number()详解

#yyds干货盘点#JavaScript数值转换-Number方法 举报

JavaScript 数值Number类型详解

JavaScript基础 null转换为数值型 Number()

JavaScript中的数值转换方法

JavaScript之类型转换