number 数字类型
最后更新:2026-10-22
number 数字类型
number 统一表示整数和小数——JS 只有这一种数字类型。计数、金额、坐标、时间戳都标注为 number。
| 分组 | 基础类型 |
|---|---|
| 类型 | 类型 |
| 严格模式 | 不需要 |
ℹ️ 说明 编辑器将 TypeScript 转译为 JavaScript 后运行(不做类型检查);类型检查结果见示例 Output。
📝 语法
let count: number = 42;
let price = 19.99;
let hex = 0xff; // 255
⚙️ 参数
| 0x / 0b / 0o / 1e5 | 支持十进制、0x 十六进制、0b 二进制、0o 八进制、1e5 科学计数 |
|---|
返回值:无返回值——number 是基础类型注解,不产生任何运行时代码。
▶ 示例
修改下面的代码,点击试一试查看转译运行结果:
输出:
59.97
42 3.5
(转译后运行输出;total 实际是 59.970000000000005,浮点乘法有精度误差)
💡 要点
ℹ️ 说明 JS 没有 int/float 之分,number 都是 IEEE-754 双精度浮点,所以 0.1 + 0.2 !== 0.3。
⚠️ 注意 金额累加不要直接用浮点数:改用"以分为单位的整数"或 decimal 库,只在显示层 toFixed。
💡 提示 parseInt/parseFloat 解析带单位的字符串("42px"、"3.5rem")很好用,解析失败返回 NaN,记得用 Number.isNaN 检查。
🏷️ 相关基础类型
💡 相关案例
更多案例即将上线。
📚 相关教程
❓ 常见问题
Q 0.1 + 0.2 为什么不等于 0.3?
A 因为二进制浮点无法精确表示 0.1 和 0.2,相加结果是 0.30000000000000004。比较浮点数用误差范围判断,或改用整数/decimal 库。
Q number 有上限吗?
A 安全整数范围是 ±(2^53 - 1),即 ±9007199254740991。超出后精度丢失,需要更大或精确的整数时用 bigint。
Q NaN 也是 number 吗?
A 是,typeof NaN === "number"。判断 NaN 不能用 ===(它不等于任何值),要用 Number.isNaN()。