资讯专栏INFORMATION COLUMN

Number( )、parseInt( )、parseFloat( )的用法及区别

codeGoogle / 3151人阅读

摘要:下面看一下提供的种常见的转数字的方法。一数字正常转换,可处理十进制,二进制,八进制和十六进制。也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。处理浮点数会取整不会。

js中转数字的方法有哪些?我经常会用字符串*1,但是如果碰到一些特殊的情况,使用这种方式会带来不必要的麻烦。下面看一下js提供的3种常见的转数字的方法。

一、 Number()

1.数字正常转换,可处理十进制,二进制,八进制和十六进制。

Number(0000012323) //5331

Number(0xf) //15

Number(001) //1

Number(1.1) //1.1

Number(0.11) //0.11 浮点数也正常转换

Number(00.11) //报错

2.布尔值;其他类型

Number(false) //0

Number(true) //1

Number() // 0 //空返回0

Number("") //0

Number(null) //0
Number(undefined) //NaN

3.字符串

Number("0xf") //15 //1.十六进制格式,如“0xf”,将其转换为相同大小的十进制数值

Number("0000012323") //12323 //2.前导0会被忽略

Number("0.11") //0.11
Number("00.11") //0.11 //3.浮点数会正常转换,并忽略前导0

Number("1b1")//NaN//4.其他情况字符串都返回NaN

4.对象:会先调用valueOf()和toString()方法

Number({a:1}) //NaN === Number("[object Object]") 

Number([1]) //1 ===Number("1")

Number([1,2]) //NaN === Number("1,2")
二、parseInt(num,type)

parseInt有2个参数,第二个参数表示转换数字想要的进制。进行转换时会取整。

1.数字转换,将浮点数转成整数

parseInt(10);

parseInt(10.1) //10

parseInt(10.1,2) //2

parseInt(0.23) //0

parseInt(10.111.1,10) //报错:missing ) after argument list

parseInt(0010.111,10) //报错:missing ) after argument list

2.布尔值;其他类型

parseInt(false) //NaN

parseInt(null) // NaN

parseInt(undefined) //NaN

parseInt() //NaN

parseInt("")  //NaN

3.字符串:字符串开头如果不是正、负、数字返回NaN;遇到非数字或结尾停止解析

parseInt("-1") //-1

parseInt("+1") //1

parseInt("a1") //NaN

parseInt("12a") //12

parseInt("12,a") //12

parseInt("012,a") //12

parseInt("0.12,a") //0

parseInt("0000.12,a") //0

4.对象:会先调用valueOf()和toString()方法,然后按字符串处理

parseInt({a:1}) // NaN === parseInt("[object Object]")

parseInt([1,1.2],2) // 1 === parseInt("1,1.2",2)

parseInt([10,1.2],2) //2 === parseInt("10,1.2",2)
三、parseFloat()

与parseInt() 函数类似,parseFloat() 也是从第一个字符(位置0)开始解析每一个字符。也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。
parseFloat() 只解析十进制,因此它没有第二个参数指定基数的用法

1.数字

parseFloat(0.2222) //0.2222
parseInt(0xf,10) //15

2.布尔;其他类型

parseFloat() //NaN

parseFloat("") //NaN

parseFloat(false) //NaN

parseFloat(null) //NaN

parseFloat(undefined)//NaN

3.字符串

parseFloat("00.123") //0.123

parseFloat("00.123aa") //0.123 //只会取到非数字前一位

parseFloat("-0.123aa") //-0.123

parseFloat("-123.1.3") //-123.1//遇到第二个小数点当非数字处理

parseFloat("-1.0") //-1小数点后为0时返回整数

4.对象:同上

parseFloat([1.33,1.2]) //1.33

parseFloat({a:1}) //NaN
四、区别

Number()、parseInt()、parseFloat()区别总结起来就是:

1.参数上:Number()、parseFloat都只有一个数据源参数;()parseInt()多一个进制处理的参数。

2.处理浮点数:parseInt()会取整;Number()、parseFloat()不会。

3.处理机制:Number处理数据时发现非数字(不包括正、负号)就会返回NaN;parseInt只要在数据开头发现数字就不会返回NaN。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106543.html

相关文章

  • JavaScript个人理解

    摘要:隐式类型转换与显示类型转换不是官方给的内容隐式类型转换转换为类型类型转换后内容不变用法单引或双引代码示例图定义类型类型和类型的变量一花一世界控制台示例图转换为类型用法其他类型类型转换为类型如果文本内容是普通的文本非数字转换后的结果 隐式类型转换与显示类型转换 - (不是官方给的内容) 隐式类型转换 1.转换为string类型 - 类型转换后内容不变 - 用法: + (单引)或 (双引)...

    CollinPeng 评论0 收藏0
  • javascript数值转换

    摘要:函数在转换字符串时,更多的是看其是否符合数值模式。例如,会被转换为,因为会被完全忽略。类似地,会被转换为,因为小数点并不是有效的数字字符。指定基数会影响到转换的输出结果。举例来说,将会被转换为。但十六进制格式的字符串则始终会被转换成。 以下三个函数将非数值转换为数值:Number() 、parseInt()和 parseFloat() Number()的转换规则 Boolean值 ...

    qianfeng 评论0 收藏0
  • 『总结』JS常用方法与片段

    摘要:元素是通过指定的分隔符进行分隔的。返回值一个字符串数组,执行的操作与执行的操作是相反的。返回值与没有参数的方法返回的字符串相同。 1.javascript删除元素节点 IE中有这样一个方法:removeNode(),这个方法在IE下是好使的,但是在Firefox等标准浏览器中就会报错了 removeNode is not defined,但是在核心JS中有一个操作DOM节点的方法叫:r...

    eternalshallow 评论0 收藏0
  • JS总结篇--[总结]JS常用方法与片段

    摘要:元素是通过指定的分隔符进行分隔的。返回值一个字符串数组,执行的操作与执行的操作是相反的。返回值与没有参数的方法返回的字符串相同。 1.javascript删除元素节点 IE中有这样一个方法:removeNode(),这个方法在IE下是好使的,但是在Firefox等标准浏览器中就会报错了 removeNode is not defined,但是在核心JS中有一个操作DOM节点的方法叫:r...

    spacewander 评论0 收藏0
  • JavaScript数据类型一些注意要点

    摘要:如类型除了可以以十进制表示之外,整数还可以通过八进制或者十六进制的字面值来表示,其中八进制字面值的第一位必须是,然后是八进制数字序列。 Javascript 数据类型 ECMAscript 中有5种简单的数据类型,也被称为基本数据类型:Undefined、Null、Boolean、Number和String。还有一种复杂的数据类型——Object。 Undefined 类型 在使用va...

    Tonny 评论0 收藏0

发表评论

0条评论

codeGoogle

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<