TypeScript Number
Number 是 TypeScript 处理数值的基础类型,对应 JavaScript 的 number:不区分整数与浮点,统一用 64 位双精度表示。结合内置属性与方法,可以完成取整、格式化、进制转换、合法性判断等常见任务。
1. 声明数值变量
整数、小数、负数都属于 number 类型,直接声明即可:
let age: number = 25;
const pi: number = 3.14;
const temp: number = -5;
console.log(age, pi, temp); // 输出:25 3.14 -5
2. 进制表示
支持十进制,以及二进制 0b、八进制 0o、十六进制 0x 字面量:
const hex: number = 0xff; // 十六进制 255
const oct: number = 0o377; // 八进制 255
const bin: number = 0b1111; // 二进制 15
console.log(hex, oct, bin); // 输出:255 255 15
3. 特殊值与常用属性
NaN 表示"不是数字",Infinity 表示无穷大;Number 上还带有 MAX_VALUE、MIN_VALUE 等常量:
console.log(Number.MAX_VALUE); // 输出:1.7976931348623157e+308
console.log(Infinity > 1e308); // 输出:true
console.log(0 / 0); // 输出:NaN
4. 实例方法:格式化
toFixed 保留指定小数位、toPrecision 控制有效数字个数(都返回字符串)、toString 可带进制参数:
const money: number = 3.14159;
console.log(money.toFixed(2)); // 输出:3.14
console.log(money.toPrecision(3)); // 输出:3.14
console.log((255).toString(16)); // 输出:ff
5. 静态方法:解析与判断
parseInt/parseFloat 从字符串中解析数字;isNaN/isFinite 判断值是否合法;Number.isInteger 判断是否为整数:
console.log(Number.parseInt("42px")); // 输出:42
console.log(Number.parseFloat("3.14abc")); // 输出:3.14
console.log(Number.isInteger(3.0)); // 输出:true
console.log(Number.isNaN(NaN)); // 输出:true
console.log(Number.isFinite(1 / 0)); // 输出:false
6. 浮点精度提醒
二进制无法精确表示部分十进制小数,直接比较与累加时要小心,可用 toFixed 或先放大为整数再运算:
console.log(0.1 + 0.2); // 输出:0.30000000000000004
console.log((0.1 + 0.2).toFixed(1)); // 输出:0.3
小结
number 类型覆盖整数、浮点与 NaN/Infinity 特殊值。常用口诀:格式化用 toFixed,解析用 parseInt/parseFloat,判断用 Number.isInteger/isNaN;涉及金额计算时要警惕浮点精度误差。