十七、数值扩展
小于 1 分钟约 298 字
(一)Number.EPSILON
- 是
JavaScript
表示的最小精度 EPSILON
属性值接近于2.2204460492503130808472633361816E-16
console.log(Number.EPSILON);
// 2.220446049250313e-16
console.log(0.1 + 0.2);
// 0.30000000000000004
console.log(0.1 + 0.2 === 0.3);
// false
function equal(a, b) {
if (Math.abs(a - b) < Number.EPSILON) return true;
else return false;
}
console.log(equal(0.1 + 0.2, 0.3));
// true
(二)二进制和八进制
let b = 0b1010;
console.log(b);
// 10=0*2^0+1*2^1+0*2^2+1*2^3
let o = 0o777;
console.log(o);
// 511=7*8^0+7*8^1+7*8^2
let d = 100;
console.log(d);
// 100
let x = 0xff;
console.log(x);
// 255=15*16^0+15*16^1
(三)Number.isFinite
- 检测一个数值是否为有限数
console.log(Number.isFinite(100));
// true
console.log(Number.isFinite(100 / 0));
// false
console.log(Number.isFinite(Infinity));
// false
(四)Number.isNaN
- 检测一个数值是否为
NaN
console.log(Number.isNaN(123));
// false
(五)Number.parseInt && Number.parseFloat
- 字符串转整数/浮点数
console.log(Number.parseInt("521314love"));
// 521314
console.log(Number.parseFloat("3.1415926535神奇"));
// 3.1415926535
(六)Number.isInteger
- 判断一个数是否为整数
console.log(Number.isInteger(5));
// true
console.log(Number.isInteger(2.5));
// false
(七)Math.trunc
- 将数字的小数部分抹掉
console.log(Math.trunc(3.5));
// 3
(八)Math.sign
- 判断一个数到底是正数=>1、负数=>-1 还是 0=>0
console.log(Math.sign(-20000));
// -1
console.log(Math.sign(0));
// 0
console.log(Math.sign(100));
// 1