16. 0.1+0.2=0.30000000000000004?ArkTS算术运算符实战详解
算术运算符用来对数字做计算,就是加、减、乘、除、取余,和数学里一样。
动画视频在《0.1+0.2=0.30000000000000004?ArkTS算术运算符实战详解》。
下面用 10 和 3 各算一次。
let a: number = 10; let b: number = 3; console.log('加法:', a + b); console.log('减法:', a - b); console.log('乘法:', a * b); console.log('除法:', a / b);
加法是 13,减法是 7,乘法是 30。除法是 3.3333333333333335,不会自动收成整数。
要整数,用 Math.floor 向下取整,或 Math.trunc 把小数直接砍掉。10 除以 3 这两个都得到 3。
console.log('向下取整:', Math.floor(a / b));
console.log('截断取整:', Math.trunc(a / b));
小数还有一个老问题:0.1 + 0.2 不等于 0.3。计算机用二进制存小数,这两个数都存不准,加起来是 0.30000000000000004。
console.log(0.1 + 0.2);
console.log('保留两位:', (0.1 + 0.2).toFixed(2));
toFixed(2) 把结果收成两位,得到字符串 "0.30"。

先开启预览器,再打开日志面板,按 Ctrl + S 保存,才能看到这些行。后面的 console.log 也一样。
取余
% 求的是余数。10 除以 3,商 3,余 1。
用来判断奇偶:一个数对 2 取余,0 是偶数,1 是奇数。
console.log('取余:', 10 % 3);
console.log('偶数判断:', 10 % 2);
第一行是 1。第二行是 0,10 是偶数。
自增和自减
++ 是加 1,-- 是减 1。单独写一行,放在变量前面或后面,结果一样。
let count: number = 5; count++; console.log('count++ 后:', count); count--; console.log('count-- 后:', count);
5 加 1 变成 6,再减 1,回到 5。
写进表达式里,前后缀的返回值不一样。变量自己都会加 1。
let x: number = 5; console.log('x++ 的返回值:', x++); console.log('此时 x 的值:', x); let y: number = 5; console.log('++y 的返回值:', ++y); console.log('此时 y 的值:', y);
x++ 先交出原来的 5,再把自己变成 6。所以第一行是 5,下一行 x 已经是 6。
++y 先变成 6,再把 6 交出去。返回值和 y 都是 6。
表达式里差的就是这 1。用不到返回值时,单独写一行就行。
原文地址: https://www.cveoy.top/t/topic/qHWh 著作权归作者所有。请勿转载和采集!