在js的使用中往往伴随着有格式带来的问题,下面这篇文章主要给大家介绍了关于JavaScript中将字符串转换为数字的七种方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下 ... ... ... ... ...
parseInt()
解析一个字符串并返回一个整数
。允许空格。仅返回第一个数字。这种方法虽然有一个限制。如果您解析十进制数,它将四舍五入到最接近的整数值,并将该值转换为
string
。可能需要使用parseFloat()
方法进行文字转换。myString = '125'
console.log(parseInt(myString)) // expected result: 125
a = 15.32
console.log(parseInt(a)) // expected result: 15
Number()
可用于将 JavaScript 变量转换为数字。我们可以用它来转换字符串为数字。如果该值不能转换为数字,则返回
NaN
。Number("10"); // returns 10
Number(" 10 "); // returns 10
Number("10.33"); // returns 10.33
一元加号运算符 (
+
) 在其操作数之前并计算其操作数,但如果尚未将其转换为数字,则尝试将其转换为数字。const x = 25;
const y = -25;
console.log(+x); // expected output: 25
console.log(+y); // expected output: -25
console.log(+''); // expected output: 0
parseFloat()
解析一个字符串并返回一个数字。允许空格。仅返回第一个数字
。parseFloat("10"); // returns 10
parseFloat("10.33"); // returns 10.33
parseFloat("10 20 30"); // returns 10
parseFloat("10 years"); // returns 10
parseFloat("years 10"); // returns NaN
该
Math.floor()
函数返回小于或等于给定数字的最大整数。这对于十进制数字可能有点棘手,因为它将最接近的整数的值返回为Number。str = '1222'
console.log(Math.floor(str)) // returns 1222
a = 12.22
Math.floor(a) // expected result: 12
我们可以使用双波浪号运算符将字符串转换为数字。
str = '1234'
console.log(~~str) // expected result: 1234
negStr = '-234'
console.log(~~negStr) // expected result: -234
7.进行除加法以外的数字运算
当参与数字运算时,JS会尝试将字符串转化为数字再运算,但是+会当成字符串拼接str = '2344'
console.log(str * 1) // expected result: 2344
console.log(str - 0) // expected result: 2344
console.log(str + 0) // expected result: 23440
/*
* 将其他的数据类型转换为Number
* 转换方式一:
* 使用Number()函数
* - 字符串 --> 数字
* 1.如果是纯数字的字符串,则直接将其转换为数字
* 2.如果字符串中有非数字的内容,则转换为NaN
* 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
* - 布尔 --> 数字
* true 转成 1
* false 转成 0
*
* - null --> 数字 0
*
* - undefined --> 数字 NaN
*
* 转换方式二:
* - 这种方式专门用来对付字符串
* - parseInt() 把一个字符串转换为一个整数
* - parseFloat() 把一个字符串转换为一个浮点数
*/
var a = "123";
//调用Number()函数来将a转换为Number类型
a = Number(a);
a = false;
a = Number(a);
a = null;
a = Number(a);
a = undefined;
a = Number(a);
a = "123567a567px";
//调用parseInt()函数将a转换为Number
/*
* parseInt()可以将一个字符串中的有效的整数内容去出来,
* 然后转换为Number
*/
a = parseInt(a);
/*
* parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
*/
a = "123.456.789px";
a = parseFloat(a);
/*
* 如果对非String使用parseInt()或parseFloat()
* 它会先将其转换为String然后在操作
*/
a = true;
a = parseInt(a);
a = 198.23;
a = parseInt(a);
console.log(typeof a);
console.log(a);
/*
* 在js中,如果需要表示16进制的数字,则需要以0x开头
* 如果需要表示8进制的数字,则需要以0开头
* 如果要要表示2进制的数字,则需要以0b开头
* 但是不是所有的浏览器都支持
*
*/
//十六进制
a = 0x10;
a = 0xff;
a = 0xCafe;
//八进制数字
a = 070;
//二进制数字
//a = 0b10;
//向"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
a = "070";
//可以在parseInt()中传递一个第二个参数,来指定数字的进制
a = parseInt(a,10);
console.log(typeof a);
console.log(a);
到此这篇关于JavaScript中将字符串转换为数字的七种方法的文章就介绍到这了
扫描二维码,手机查看
声明:部分数据/图片来源互联网,不代表Hluse Inc.,真实性请妥善甄别。