JavaScript 将字符串转换为数字 – JS 字符串转 Int 示例

"John Doe" -> String
'John Doe' -> String
"12" -> String
12 -> Number

 假设我们将字符串存储在一个变量中。检查变量是否为字符串的一个好方法是使用typeof运算符:

let name = "John Doe";

console.log(typeof name) // "string"

 现在让我们学习如何将字符串转换为数字。

如何使用Number()函数将字符串转换为数字

Number 函数是一种强大的方法,可用于将字符串或其他值转换为 Number 类型。NaN如果值无法转换,此方法也将返回:

console.log(Number('212'))  // 212
console.log(Number("2124"))  // 2124
console.log(Number('0.0314E+2')); // 3.14

console.log(Number("Hello World"))  // NaN
console.log(Number(undefined))  // NaN

 这也适用于变量:

let age = "12";
let password = "John12";

console.log(Number(age)) // 12
console.log(Number(password)) // NaN

 这是最简单的方法之一,因为它也适用于十进制值并返回值而不对其进行操作:

let answer = "12.0";
let answer = "12.0267";

console.log(Number(answer)) // 12.0
console.log(Number(answer)) // 12.0267

parseInt()如何使用andparseFloat()函数将字符串转换为数字

parseInt()和函数都parseFloat()接受一个字符串作为参数,然后将该字符串转换为整数/数字。

您还可以parseInt()用于将非整数数字转换为整数,而parseFloat()它是更强大的方法,因为它可以维护浮点数和一些数学逻辑:

console.log(parseInt('12')) // 12
console.log(parseInt('12.092')) // 12.092
console.log(parseInt('  3.14  ')) // 3
console.log(parseInt('0.0314E+2')) // 0
console.log(parseInt('John Doe')) // NaN

console.log(parseFloat('12')) // 12
console.log(parseFloat('12.092')) // 12.092
console.log(parseFloat('  3.14  ')) // 3.14
console.log(parseFloat('0.0314E+2')) // 3.14
console.log(parseFloat('John Doe')) // NaN

 像往常一样,这也适用于变量:

let age = "12";

console.log(parseInt(age)) // 12
console.log(parseFloat(age)) // 12

 注意:parseFloat()当字符串的字符不能转换为数字时,该函数将始终返回 NaN:

console.log(parseFloat('N0.0314E+2')) // NaN

如何使用一元加号运算符 ( +)将字符串转换为数字

这是将某物转换为数字的最快和最简单的方法之一。我说“某事”是因为它转换的不仅仅是数字和浮点数的字符串表示形式——它也适用于非字符串值true,falsenull/或空字符串。

此方法的一个优点(或缺点)是它不对数字执行任何其他操作,例如向上舍入或将其转换为整数。

让我们看一些例子:

console.log(+'100'); // 100
console.log(+'100.0373'); // 100.0373
console.log(+''); // 0
console.log(+null); // 0
console.log(+true); // 1
console.log(+false); // 0
console.log(+'John Doe'); // NaN
console.log(+'0.0314E+2'); // 3.14

正如预期的那样,这也适用于变量:


let age = "74"; console.log(+age); // 74


如果你比较ParseInt()加一元运算符,parseInt()在某些情况下你可能会在方法上使用加一元运算符。

例如,假设您正在获取随机值——假设一个 UUID 值在某些时候可能以数字开头,而在其他时候可以以字母开头。这意味着使用该parseInt()函数可能有时会返回NaN,有时会返回数字的第一个字符:

console.log(parseInt("cb34d-234ks-2343f-00xj")); // NaN
console.log(parseInt("997da-00xj-2343f-234ks")); // 997


console.log(+"cb34d-234ks-2343f-00xj"); // NaN
console.log(+"997da-00xj-2343f-234ks"); // NaN

如何使用 JavaScript 数学方法将字符串转换为数字

将字符串转换为数字的另一种方法是使用一些 JavScript 数学方法。

您可以使用该floor()方法,它将传递的值向下舍入到最接近的整数。该ceil()方法与 相反floor(),向上舍入到最接近的整数。最后round(),介于两者之间的方法只是将数字四舍五入到最接近的整数(根据接近程度向上或向下)。

Math.floor()如何使用JavaScript 方法将字符串转换为数字

就像我上面解释的那样,这将始终返回一个整数。假设我们传递一个浮点值——它会将值向下舍入到最接近的整数。NaN如果我们将字母作为字符串或任何其他非整数字符传递,这将返回:

console.log(Math.floor("14.5")); // 14
console.log(Math.floor("654.508")); // 654
console.log(Math.floor("0.0314E+2")); // 3
console.log(Math.floor("34d-234ks")); // NaN
console.log(Math.floor("cb34d-234ks-2343f-00xj")); // NaN

Math.ceil()如何使用JavaScript 方法将字符串转换为数字

这非常相似,只会将我们的浮点值四舍五入以始终返回整数:

console.log(Math.ceil("14.5")); // 15
console.log(Math.ceil("654.508")); // 655
console.log(Math.ceil("0.0314E+2")); // 3
console.log(Math.ceil("34d-234ks")); // NaN

Math.round()如何使用JavaScript 方法将字符串转换为数字

这与这两种方法一样工作,但只是在四舍五入到最接近的整数后返回整数:

console.log(Math.round("14.5")); // 15
console.log(Math.round("654.508")); // 655
console.log(Math.round("0.0314E+2")); // 3
console.log(Math.round("34d-234ks")); // NaN

 所有上述数学方法也适用于变量:

let age = "14.5";

console.log(Math.floor(age)); // 14
console.log(Math.ceil(age)); // 15
console.log(Math.round(age)); // 15

如何使用一些数学运算将字符串转换为数字

这不是一个真正的方法,但值得了解。到目前为止,我们已经讨论了实现这种转换的直接方法——但在某些情况下,您可能只想执行这些数学运算来帮助转换。

这些包括乘法1、除法1和减法0。当我们对字符串执行任何这些操作时,它们将被转换为整数:

console.log("14.5" / 1); // 14.5
console.log("0.0314E+2" / 1); // 3.14

console.log("14.5" * 1); // 14.5
console.log("0.0314E+2" * 1); // 3.14

console.log("14.5" - 0); // 14.5
console.log("0.0314E+2" - 0); // 3.14

像往常一样,这也适用于变量:

let age = "14.5";

console.log(age / 1); // 14.5
console.log(age * 1); // 14.5
console.log(age - 0); // 14.5

结论

在本文中,我们研究了在 JavaScript 中将字符串转换为整数的各种方法和方法。

最好知道存在许多方法,以便您可以选择最适合您的方法并将其应用于任何情况