在JavaScript中,所有的数字都是以64位浮点数的形式存储的,这通常被称为double
类型。判断两个double
类型的数值大小,可以直接使用比较运算符(<
, >
, <=
, >=
)。
<
, >
, <=
, >=
。console.log(0.1 + 0.2 === 0.3); // 输出:false
function nearlyEqual(a, b, epsilon = 1e-10) {
return Math.abs(a - b) < epsilon;
}
console.log(nearlyEqual(0.1 + 0.2, 0.3)); // 输出:true
lodash
库中的_.isEqualWith
方法可以进行自定义比较。// 基本比较
let num1 = 0.1 + 0.2;
let num2 = 0.3;
console.log(num1 > num2); // 可能输出错误结果
// 使用误差范围进行比较
function nearlyEqual(a, b, epsilon = 1e-10) {
return Math.abs(a - b) < epsilon;
}
console.log(nearlyEqual(num1, num2)); // 输出:true
通过这种方式,可以有效地处理JavaScript中浮点数比较时可能遇到的精度问题。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云