我注意到这些评估结果为
true
:
(1 + Number.MIN_VALUE) === 1
Object.is(1 + Number.MIN_VALUE, 1)
来自文档:
Number.MIN_VALUE 静态数据属性表示 JavaScript 中可表示的最小正数值。
我的问题是:
既然
Number.MIN_VALUE
不为零,为什么将它与给定数字相加不会得到不同的数字?
可以添加到给定数字以产生不同的数字的最小值是多少?
对于您的问题:
为了精确比较,由于内部浮点表示的性质,您需要像这样进行比较:
const x = 0.1, y = 0.2, expectedResult = 0.3;
function equalNumber(a,b) {
return (a - b) < Number.EPSILON;
}
console.log('===', x + y === expectedResult);
console.log('equalNumber', equalNumber((x+y), expectedResult));
对于第二个问题,您要求的号码是
[Number.EPSILON][1]
。