概述
最近经常遇到关于类型转换的问题,索性上网搜搜在此总结一篇
js字符转换成数字主要有三种可用的方法:转换函数、强制类型转换、利用js变量弱类型转换。
1. 转换函数:
js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行,对其他类型返回的都是NaN
parseInt() 函数
可解析一个字符串,并返回一个整数。
parseInt(string, radix)
radix 可选。表示要解析的数字的基数(进制)。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
返回值:返回解析后的数字。
*如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN
*如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
*如果 string 以 0 开头,那么允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
*如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
一些示例如下:
parseInt("1234blue"); // returns 1234
parseInt("0xA"); //returns 10
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 10 parseInt("010", 8); //returns 8 parseInt("010", 10); //returns 10
parseFloat() 函数可解析一个字符串,并返回一个浮点数。
该函数判断字符串中的首个字符是否是数字,如果是,则对字符串进行解析,然后以数字返回该数字,而不是作为字符串。
*如果参数字符串的第一个字符不能被解析成为数字,则 parseFloat 返回 NaN。
*可以通过调用 isNaN 函数来判断 parseFloat 的返回结果是否是 NaN。
*开头和结尾的空格是允许的。
*如果只想解析数字的整数部分,请使用 parseInt() 方法。
示例如下:
parseFloat("1234blue"); //returns 1234 parseFloat("0xA"); //returns 0 parseFloat("22.5"); //returns 22.5 parseFloat("22.34.5"); //returns 22.34 parseFloat("0908"); //returns 908 // parseFloat 针对开头为 0 0的处理 parseFloat("blue"); //returns NaN
parseFloat()方法与parseInt()方法相似,不同之处在于,parseFloat必须以十进制形式表示浮点数,没有基模式。
2.强制类型转换
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
3. 利用js变量弱类型转换
举个小例子,一看,就会明白了。
var str = 5332355';
var x = str - 0;
x = x * 1;
利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的。存在一些安全问题。
最后
以上就是粗暴茉莉为你收集整理的字符串转换成数字的三种方法的全部内容,希望文章能够帮你解决字符串转换成数字的三种方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复