JavaScript中Number-EPSILON在数值比较中的应用
Number.EPSILON是JavaScript中1与大于1的最小可表示数之差约2.220446049250313e-16用于浮点数安全比较它不是通用误差容限需配合Math.abs(a-b)和量级基准如Math.max(Math.abs(a),Math.abs(b))使用。Number.EPSILON 是 JavaScript 中表示 1 与大于 1 的最小可表示数之间差值的常量其值约为 2.220446049250313e-16。它不是“任意小数的通用误差容限”而是用于浮点数**安全比较**的基准单位尤其适用于判断两个数是否“在浮点精度范围内相等”。为什么需要 Number.EPSILONJavaScript 使用 IEEE 754 双精度浮点数表示数字导致很多十进制小数无法精确存储如 0.1 0.2 ! 0.3。直接用 比较结果可能为 false即使数学上应相等。Number.EPSILON 提供了一个与数值尺度匹配的、合理的精度阈值参考——但它本身**不随操作数大小自动缩放**需配合绝对差值使用。正确用法相对误差比较推荐对大多数场景应将误差与参与比较的较大数值的量级关联避免对大数或小数失效计算两数之差的绝对值Math.abs(a - b)选取合适的基准值常用 Math.max(Math.abs(a), Math.abs(b))判断是否小于 基准值 × Number.EPSILON或乘以一个合理倍数如 10示例函数 RedClaw 百度推出的手机端万能AI Agent助手