12. 数值类型 number | 统计期末成绩

ArkTS 里,整数和小数都用 number,不再单独分 int、float、double。

动画视频在《12. 数值类型 number | 统计期末成绩》。

复制代码
// 整数
let age: number = 18;
// 小数
let height: number = 175.5;

期末成绩也是这个类型。数学成绩 86.5 带小数,班级人数 45 是整数,冒号后面都写 number。

复制代码
// 数学成绩
let mathScore: number = 86.5;
// 班级人数
let classCount: number = 45;

整数的四种进制

整数默认写成十进制,前面不加前缀。99 就是九十九。

也可以换成二进制、八进制、十六进制,靠前缀区分。

进制 前缀 说明
十进制 无前缀 日常默认写法
十六进制 0x / 0X 数字 0~9,字母 a~f / A~F。开发里最常用来写颜色
八进制 0o / 0O 每一位只能是 0~7
二进制 0b / 0B 每一位只能是 0 或 1

前缀的大小写都行。0x 和 0X 是同一种写法,0b、0B,0o、0O 也一样。

复制代码
// 二进制,等价十进制 10
let bin: number = 0b1010;
// 八进制,等价十进制 61
let oct: number = 0o75;
// 十进制,无前缀
let dec: number = 99;
// 十六进制,等价十进制 255
let hex: number = 0xff;

0b1010 从右往左,每一位是 1、2、4、8。这一串用上了 8 和 2,等于 10。

0o75 里,7 乘 8 再加 5,等于 61。写到 8 或 9 就不合法了,八进制没有这两位。

0xff 里,a 到 f 表示 10 到 15,f 是 15。15 乘 16 再加 15,等于 255。

科学计数法

小数还可以写成科学计数法,格式是 <实数>e<整数>,E 也行。

e 表示底数 10。e 前面是系数,后面那个整数是 10 的指数。指数是正的,乘 10 的正次幂;是负的,乘 10 的负次幂。

复制代码
// 2.5 × 10³ = 2500
let bigNum: number = 2.5e3;
// 1.2 × 10⁻² = 0.012
let smallNum: number = 1.2e-2;

2.5e3 就是 2.5 乘 1000,等于 2500。小数点往右移 3 位。

1.2e-2 就是 1.2 乘 0.01,等于 0.012。小数点往左移 2 位。很大的数、很小的小数,都可以这么写。

打印出来看

成绩、人数、四种进制、科学计数法放在一起,用 console.log 打出来。日志里看到的是换算后的十进制,不是代码里那串前缀。

复制代码
/*------------------------------
数值类型:number
-------------------------------*/

// 期末成绩
let mathScore: number = 86.5; // 数学成绩
let classCount: number = 45;  // 班级人数

// 四种进制字面量
let bin: number = 0b1010; // 二进制,前缀 0b / 0B,等价十进制 10
let oct: number = 0o75;   // 八进制,前缀 0o / 0O,等价十进制 61
let dec: number = 99;     // 十进制,无前缀
let hex: number = 0xff;   // 十六进制,前缀 0x / 0X,等价十进制 255

// 科学计数法(e 计数)
let bigNum: number = 2.5e3;   // 2.5 × 10³ = 2500
let smallNum: number = 1.2e-2; // 1.2 × 10⁻² = 0.012

// 打印信息
console.log("mathScore = ", mathScore);
console.log("classCount = ", classCount);
console.log("二进制0b1010转10进制:", bin);
console.log("八进制0o75转10进制:", oct);
console.log("十进制:", dec);
console.log("十六进制0xff转10进制:", hex);
console.log("科学计数法 2.5e3 = ", bigNum);
console.log("科学计数法 1.2e-2 = ", smallNum);

八行分别是 86.5、45、10、61、99、255、2500、0.012。

先开启预览器,再打开日志面板,按 Ctrl + S 保存,才能看到这八行。预览器没开,日志里不会有输出。