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
,false
和null
/或空字符串。
此方法的一个优点(或缺点)是它不对数字执行任何其他操作,例如向上舍入或将其转换为整数。
让我们看一些例子:
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 中将字符串转换为整数的各种方法和方法。
最好知道存在许多方法,以便您可以选择最适合您的方法并将其应用于任何情况