JavaScript字符串转数字的5种方法及遇到的坑

一元云算符 最常用方法

"1.23" * 1 // returns 1.23

"0xFF" - 0 // returns 255

"0xFF.jpg" / 1 // returns NaN

+"023" // returns 23

parseInt()

处理整数的时候parseInt()更常用。parseInt()函数在转换字符串时,会忽略字符串前面的空格,知道找到第一个非空格字符。

如果第一个字符不是数字,parseInt() 就会返回NaN,同样的,用parseInt() 转换空字符串也会返回NaN。

如果第一个字符是数字字符,parseInt() 会继续解析第二个字符,直到解析完所有后续字符串或者遇到了一个非数字字符。

基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法。

console.log(parseInt(‘12.34‘)) // 12

console.log(parseInt(‘ 12.34‘)) // 12

console.log(parseInt(‘a12.34‘)) // NaN

console.log(parseInt(‘12a.34‘)) // 12

console.log(parseInt(‘012a.34‘)) // 12

parseFloat()

把值转换成浮点数

与parseInt() 函数类似,parseFloat() 也是从第一个字符(位置0)开始解析每一个字符。也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。

也就是说,字符串中第一个小数点是有效的,而第二个小数点就是无效的了,它后面的字符串将被忽略。

parseFloat() 只解析十进制,因此它没有第二个参数指定基数的用法

如果字符串中包含的是一个可解析为正数的数(没有小数点,或者小数点后都是零),parseFloat() 会返回整数。

console.log(parseInt(‘123AF‘)) // 123

console.log(parseInt(‘q123AF‘)) // NaN
console.log(parseInt(‘0xa‘)) // 0

console.log(parseInt(‘12.3‘)) // 12.3

console.log(parseInt(‘020.4‘)) // 20.4

console.log(parseInt(‘22.3.45‘)) // 22.3

parseInt() 和parseFloat() 的区别在于:

  1. parseFloat() 所解析的字符串中第一个小数点是有效的,而parseInt() 遇到小数点会停止解析,因为小数点并不是有效的数字字符。
  2. parseFloat() 始终会忽略前导的零,十六进制格式的字符串始终会被转换成0,而parseInt() 第二个参数可以设置基数,按照这个基数的进制来转换。

Number() 强类型转化最慢最不常用

原文地址:https://www.cnblogs.com/congtt/p/10348548.html

时间: 2024-12-30 03:43:44

JavaScript字符串转数字的5种方法及遇到的坑的相关文章

javascript浮点数转换成整数三种方法

将浮点数转换成整数方法有很多,分享三种常用方法. Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt位运算符Math.floor Math.ceil Description 一.parseInt 1. 实例 parseInt("13nash");//13 parseInt("")// NaN parseInt("0xA") //10(十六进制) parseInt(" 13")/

php在数字前面补0得到固定长度数字的两种方法

比较基础,其实两个内置函数都能实现. 1  sprintf 语法: string sprintf(string format, mixed [args]...); 返回值: 字符串 函数种类: 资料处理 本函数用来将字符串格式化.参数 format 是转换的格式,以百分比符号 % 开始到转换字符为止.而在转换的格式间依序包括了 填空字符.0 的话表示空格填 0:空格是默认值,表示空格就放着. 对齐方式.默认值为向右对齐,负号表向左对齐. 字段宽度.为最小宽度. 精确度.指在小数点后的浮点数位数.

js去掉字符串前后空格的五种方法(转)

出处:http://www.2cto.com/kf/201204/125943.html 第一种:循环检查替换[javascript]//供使用者调用  function trim(s){  return trimRight(trimLeft(s));  }  //去掉左边的空白  function trimLeft(s){  if(s == null) {  return "";  }  var whitespace = new String(" \t\n\r")

JavaScript解决命名冲突的一种方法

过程化编码 过程化编码, 表现为 定义若干函数,然后调用定义函数, 随着页面交互逻辑变化, 从简单到复杂, 定义的所有函数.和变量 都挂在 window对象上, window对象 编程者子自定义变量名称 规模会愈来愈额庞大,在后面开发和维护的过程中, 很容易导致函数名称冲突,引起意想不到问题. 例如, 之前有个同事定义了 一个 sample 函数, N长时间后, 另一个同事又定义了一个含义不同的同名函数sample,则前以同事的代码就有问题了. 模块化方法一则 JS函数内部相当于一个小的程序空间

Python实用技巧:实现字符串反向输出的5种方法

Python--实现字符串反向输出的5种方法 方法1: for 循环 1 letter_num = list(input('please input some characters:')) 2 list_num = [] 3 def convert_order(): 4 for i in range(len(letter_num)):#根据列表的长度决定遍历的次数 5 list_num.append(letter_num[len(letter_num) - i - 1])#把letter_num

JavaScript字符串转换成数字的三种方法

在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.在网上找了一下js字符串转数字的文章,这个比较全 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才

js 字符串转换成数字的三种方法

在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.在网上找了一下js字符串转数字的文章,这个比较全 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才

js 字符串转换成数字的三种方法--转

在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.在网上找了一下js字符串转数字的文章,这个比较全 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才

js字符串转成数字的三种方法

js读取的html代码中获得的值 ,统统是以字符串的形式呈现的,为了方便我们后面对数据的操作,有时候我们有必要进行转换一下. 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 一些示例如下: 代码如下:parseInt("1234blu