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

字符串数字转换成 数值数字 最简单的方法是什么?
字符串数字转换成 数值数字 最简单的方法是什么?


a="123"
z=a+1 会变成1231

所以需要对a 进行数值转换


z=parseInt(a)+1
z=parseFloat(a)+1
z=a*1+1

哪个效率最高

------解决方案--------------------
a="123"
z=+a+1;
alert(z);
可以这样试试 效率就不知道了
------解决方案--------------------
a="123"
z=a+1 会变成1231

z = parseInt(a) + 1

用parseInt
------解决方案--------------------
z=a*1+1
这个肯定是最高的啊,若语言类型强制转换,不需要调用其他函数,时间空间复杂度都是最低的。
------解决方案--------------------
测试一下不就知道了。。不过这三个方法没有可比性,parseFloat与*1的方法实现的是同样的功能,跟parseInt就实现的功能就不一样的,没有可比性。

JScript code
//建立测试数据
var ar = [];
for (var i = 0; i < 999999; i ++) ar.push(i.toString());

var dStart, dEnd, result = [];

//parseInt()方法
dStart = new Date();
for (var i = 0; i < ar.length; i ++) ar[i] = parseInt(ar[i]);
dEnd = new Date();
result.push(dEnd.getTime() - dStart.getTime());

//parseFloat()方法
dStart = new Date();
for (var i = 0; i < ar.length; i ++) ar[i] = parseFloat(ar[i]);
dEnd = new Date();
result.push(dEnd.getTime() - dStart.getTime());

//*1方法
dStart = new Date();
for (var i = 0; i < ar.length; i ++) ar[i] *= 1;
dEnd = new Date();
result.push(dEnd.getTime() - dStart.getTime());

document.write('<p>parseInt方法耗时:' + result[0] + 'ms<br />parseFloat方法耗时:' + result[1] + 'ms<br />乘1方法耗时:' + result[2] + 'ms');

------解决方案--------------------
var a='1234';
var z=(a-0)+1; //z=1235
这种方法比较简单

------解决方案--------------------
直接 parseInt(a,10) 吧
------解决方案--------------------


“123”-0+1 你试试把 这个简单把
------解决方案--------------------
parseInt