JavaScript 中的数字类型用于表示数值,包括整数和浮点数。以下是关于 JavaScript 数字类型的详细介绍:
Number
类型// 整数
let integer = 42;
// 浮点数
let float = 3.14159;
// 科学计数法
let scientific = 2.998e8; // 2.998 × 10^8 = 299,800,000
// 二进制 (ES6+)
let binary = 0b1010; // 10
// 八进制 (ES6+)
let octal = 0o755; // 493
// 十六进制
let hex = 0xFF; // 255
// 无穷大
let infinity = Infinity; // 或 -Infinity
// 非数字 (Not a Number)
let nan = NaN; // 表示数学运算无法产生有意义的结果
// 判断是否为有限数
Number.isFinite(42); // true
Number.isFinite(Infinity); // false
// 判断是否为整数
Number.isInteger(42); // true
Number.isInteger(42.5); // false
// 判断是否为 NaN (更可靠的版本)
Number.isNaN(NaN); // true
Number.isNaN("text"); // false (不同于全局 isNaN)
// 安全整数检查
Number.isSafeInteger(2 ** 53); // false
Number.isSafeInteger(2 ** 53 - 1); // true
// 四舍五入
Math.round(4.7); // 5
// 向上取整
Math.ceil(4.2); // 5
// 向下取整
Math.floor(4.9); // 4
// 绝对值
Math.abs(-5); // 5
// 平方根
Math.sqrt(9); // 3
// 幂运算
Math.pow(2, 3); // 8
// 随机数 [0, 1)
Math.random();
由于使用二进制浮点数表示,JavaScript 中会出现精度问题:
0.1 + 0.2 === 0.3; // false
这是因为 0.1 和 0.2 在二进制中无法精确表示。对于需要精确计算的场景(如金融计算),可以使用以下方法:
decimal.js
或 big.js
let billion = 1_000_000_000; // 更易读,等同于 1000000000
// 字符串转数字
Number("123"); // 123
parseInt("123px"); // 123
parseFloat("3.14.15"); // 3.14
// 数字转字符串
let num = 123;
num.toString(); // "123"
String(num); // "123"
JavaScript 的数字类型虽然简单,但在实际使用中需要注意其精度限制和类型转换规则。