日期:2014-05-16  浏览次数:20408 次

js将字符串转换为数字

方法主要有三种

?

转换函数、强制类型转换、利用js变量弱类型转换。

?

?

1. 转换函数:

?

js提供了parseInt()parseFloat() 两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

?

在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串。

?

parseInt() 方 法首先查看位置0处的 字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试。这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。

?

例如,如果要把字符串 "1234blue "转换成整数,那么parseInt()将返回1234,因为当它检测到字符b时,就会停止检测过程。

?

字符串中包含的数字字面量会被正确转换为数字,因此 字符串 "0xA "会被正确转换为数字10。

?

不过,字符串 "22.5 "将被转换成22,因为对于整数来说,小数点是无效字符。

?

一些示例如下:

?

Js代码 ?收藏代码
  1. parseInt( "1234blue" );??? //returns???1234? ??
  2. parseInt("0xA" );??? //returns???10? ??
  3. parseInt("22.5" );??? //returns???22? ??
  4. parseInt("blue" );??? //returns???NaN ??
?

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。

?

基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,需如下调用parseInt()方法:?

Js代码 ?收藏代码
  1. parseInt( "AF" ,???16);??? //returns???175? ??

?
当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法:?

Js代码 ?收藏代码
  1. parseInt( "10" ,???2);??? //returns???2? ??
  2. parseInt("10" ,???8);??? //returns???8? ??
  3. parseInt("10" ,???10);??? //returns???10? ??

?
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:?

Js代码 ?收藏代码
<