js 关于字符串转数字及数字保留位数的控制
1.parseint()和parsefloat()两个转换函数,将字符串转换成相应的数字。
1.parseint()
parseint进行转换时,将字符串转成相应的整数。浮点数以后的数字都不要了。
parseint("1234blue"); //returns 1234
parseint("22.5"); //returns 22
parseint("blue"); //returns nan
另外parseint转换时是包含有基模式的,按照指定的转换进制进行相应的整数转换的,基数是由第二个参数传入的。
parseint("af", 16); //returns 175 ---16进制
parseint("10", 2); //returns 2 ---------2进制
parseint("10", 8); //returns 8 ---------8进制
parseint("10", 10); //returns 10 ------10进制
需要注意的是,如过字符串的第一个字符时0,则最好传入指定的基数,不然会意外的转成八进制整数。
parseint("010"); //returns 8
parseint("010", 8); //returns 8
parseint("010", 10); //returns 10
2.parsefloat()
parsefloat()方法与parseint()方法的处理方式相似。
使用parsefloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parsefloat()没有基模式。
下面是使用parsefloat()方法的示例:
parsefloat("1234blue"); //returns 1234.0
parsefloat("0xa"); //returns nan
parsefloat("22.5"); //returns 22.5
parsefloat("22.34.5"); //returns 22.34
parsefloat("0908"); //returns 908
parsefloat("blue"); //returns nan
2.利用js变量弱类型转换
即js在执行数字运算的时候,除+以外的符号,在进行运算时,如果参与运算的数字是字符的形式,js会自动将其转成数字。
举个小例子,例子中采用数字与0的减号运算,自动将字符串转成数字。
var str= '012.345 ';
var x = str-0;
x = x*1;
上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的
同时,也可以反过来使用,将数字转成字符串,数字在与字符进行+号运算时,执行的是字符串拼接,会将数字转成字符串进行拼接。
例如
var num=11225;
var str=num+‘’;
3.在对含有小数的数据进行处理的时候,往往需要保留指定的小数位数。针对保留一定位数的小数的方法有很多种。以下以保留两位小数列举几种。
1.比较新的方法tofixed,含有四舍五入的运算(ie 5.5+才支持)。
用法:2.453255.tofixed(2) //2.45
2.447088.tofixed(2) //2.45
2.利用下取正,按照指定位数转成整数,再转回去,不包含四舍五入。
math.floor(15.7784514000 * 100)/100 //15.77 注:如果需要此方法实现四舍五入,配合上取整,和一定的逻辑进行实现。
3.另外几个对小数进行取整的api。
parseint(); //丢弃小数部分,取整数部分,相当于下取整,math.floor();
math.ceil(5/2); //向上取整,小数只要存在,就整数部分+1;
math.round(5/2); //四舍五入取整。
math.floor(5/2); //向下取整,小数直接去掉,小数部分无论多大,整数部分都不+1。
4.另外还可以通过字符串控制,正则表达式匹配进行保留位数的控制,方法比较多,比较灵活。这里不再总结。