首先说,我不知道你在做什么,也不知道是什么需求,但从语法来说,虽然js要求很宽松,但是当一个长的样子像整型的字符串 后面不管是+ 还是-,都是做的字符串加减而已(当然乘和除例外)。
成都创新互联专注于企业网络营销推广、网站重做改版、繁峙网站定制设计、自适应品牌网站建设、H5建站、商城网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为繁峙等各大城市提供网站开发制作服务。
substr(),和substring()返回的都是字符串。
所以,要做数值运算,就要把string转成int,要通过parseInt()方法来转,转完之后再做加减法运算
parseInt(string) 、parseFloat()、Number()
1、parseInt(string) : 这个函数的功能是从string的开头开始解析,返回一个整数,说起来比较笼统,下面来看几个实例,大家就明白了:
parseInt("1234blue"); //returns 1234
parseInt("123"); //returns 123
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN
//另外parseInt()方法还有基模式,就是可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:
parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10
2、parseFloat():这个函数与parseInt()方法的处理方式相似。
使用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
3、Number():强制类型转换,与parseInt()和paseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100
JavaScript是一种弱类型语言,所有的变量声明都是用 var 实现,并没有强类型概念。而且JavaScript在做比较运算或其他运算时,通常会自动转换类型处理。
只有一种情况除外,就是恒等 === 强类型比较
alert(1 == '1'); // true
alert(1 === '1'); // false
javascript自带parseInt(str)函数
参数:
str,为一个包含数字的字符串
返回值:
如果str中最前面几个字符是数字,则返回该数字
如果str第一个字符不是数字,返回NaN。
例如:
parseInt("1234"); //返回1234
parseInt("1234A"); //返回1234
parseInt("1234A5"); //返回1234
parseInt("A1234"); //返回NaN
parseInt("ABCD"); //返回NaN
首先,JS中巴字符串转换成数字,并不需要jquery
对于符合number格式的字符串,最简单的方法如下:
var numStr = '99.9';// 或者是整形 '999'
// 只要在字符串前面加“+”符号就可以把string类型转换成number类型了
var num = +numStr;
对于某些结尾处追加不合法字符串的字符串,需要用parseInt或者parseFloat
// 对于整形:
var integer = '99%';
var result = parseInt(integer);
// 对于浮点型
var decimal = '99.9%';
var result = parseFloat(decimal);
对于其他进制的数字字符串
// 作为二进制
var binary = '1001';
var result = parseInt(binary, 2);
// 作为八进制
var octonary = '077';
var result = parseInt(octonary, 8);
// 作为十六进制
var hex = '0xff';
var result = parseInt(hex, 16);
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款