如何在JavaScript中将字符串转换为整数?
当前回答
我用这个
String.prototype.toInt = function (returnval) {
var i = parseInt(this);
return isNaN(i) ? returnval !== undefined ? returnval : - 1 : i;
}
var str = "7";
var num = str.toInt(); // outputs 7, if not str outputs -1
//or
var num = str.toInt(0); // outputs 7, if not str outputs 0
这样我总能得到一个整数。
其他回答
尝试parseInt函数:
var number = parseInt("10");
但有一个问题。如果您尝试使用parseInt函数转换“010”,它将检测为八进制数,并将返回数字8。因此,需要指定基数(从2到36)。在这种情况下,底座10。
parseInt(string, radix)
例子:
var result = parseInt("010", 10) == 10; // Returns true
var result = parseInt("010") == 10; // Returns false
请注意,parseInt在解析任何有效数据后忽略错误数据。此guid将解析为51:
var result = parseInt('51e3daf6-b521-446a-9f5b-a1bb4d8bac36', 10) == 51; // Returns true
数字()
Number(" 200.12 ") // Returns 200.12
Number("200.12") // Returns 200.12
Number("200") // Returns 200
parseInt()
parseInt(" 200.12 ") // Return 200
parseInt("200.12") // Return 200
parseInt("200") // Return 200
parseInt("Text information") // Returns NaN
parseFloat()
它将返回第一个数字
parseFloat("200 400") // Returns 200
parseFloat("200") // Returns 200
parseFloat("Text information") // Returns NaN
parseFloat("200.10") // Return 200.10
数学地板()
将数字舍入为最接近的整数
Math.floor(" 200.12 ") // Return 200
Math.floor("200.12") // Return 200
Math.floor("200") // Return 200
function parseIntSmarter(str) {
// ParseInt is bad because it returns 22 for "22thisendsintext"
// Number() is returns NaN if it ends in non-numbers, but it returns 0 for empty or whitespace strings.
return isNaN(Number(str)) ? NaN : parseInt(str, 10);
}
在JavaScript中,您可以执行以下操作:
解析Int
parseInt("10.5") // Returns 10
与1相乘
var s = "10";
s = s*1; // Returns 10
使用一元运算符(+)
var s = "10";
s = +s; // Returns 10
使用按位运算符
(注:在2140000000之后开始破裂。示例:~~“2150000000”=-214967296)
var s = "10.5";
s = ~~s; // Returns 10
使用Math.floor()或Math.ceil()
var s = "10";
s = Math.floor(s) || Math.ceil(s); // Returns 10
您可以使用加号。例如:
var personAge = '24';
var personAge1 = (+personAge)
然后您可以看到新变量的typebytypeofpersonAge1;这是数字。