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;涉及金额计算时要警惕浮点精度误差。

笔记加载中…