在JavaScript中获取整数有多种方法,以下是一些常见的基础概念和方法:
parseInt()
函数parseInt()
函数可以将字符串解析为整数。
let str = "123.45";
let intNum = parseInt(str, 10); // 第二个参数是基数,通常使用10进制
console.log(intNum); // 输出: 123
Math.floor()
函数Math.floor()
函数会向下取整,即返回小于或等于给定数字的最大整数。
let num = 123.45;
let intNum = Math.floor(num);
console.log(intNum); // 输出: 123
Math.ceil()
函数Math.ceil()
函数会向上取整,即返回大于或等于给定数字的最小整数。
let num = 123.45;
let intNum = Math.ceil(num);
console.log(intNum); // 输出: 124
Math.round()
函数Math.round()
函数会四舍五入到最接近的整数。
let num = 123.45;
let intNum = Math.round(num);
console.log(intNum); // 输出: 123
let num2 = 123.5;
let intNum2 = Math.round(num2);
console.log(intNum2); // 输出: 124
|
或 ~~
位运算符可以快速将浮点数转换为整数。
let num = 123.45;
let intNum = num | 0; // 使用位运算符 |
console.log(intNum); // 输出: 123
let intNum2 = ~~num; // 使用位运算符 ~~
console.log(intNum2); // 输出: 123
parseInt()
解析非数字字符串如果 parseInt()
解析的字符串以非数字字符开头,它会返回 NaN
。
let str = "abc123";
let intNum = parseInt(str, 10);
console.log(intNum); // 输出: NaN
解决方法:在使用 parseInt()
之前,先检查字符串是否以数字开头。
let str = "abc123";
if (/^\d/.test(str)) {
let intNum = parseInt(str, 10);
console.log(intNum);
} else {
console.log("Invalid number string");
}
位运算符 |
和 ~~
只能处理32位整数,对于超出范围的数字会丢失精度。
let num = 12345678901234567890;
let intNum = num | 0;
console.log(intNum); // 输出: -1410065408 (精度丢失)
解决方法:对于大数,使用 Math.floor()
或其他方法。
let num = 12345678901234567890;
let intNum = Math.floor(num);
console.log(intNum); // 输出: 12345678901234567890
通过以上方法,你可以在JavaScript中有效地获取和处理整数。
领取专属 10元无门槛券
手把手带您无忧上云