@valeera/mathx
Version:
A math library written in TS.
16 lines (14 loc) • 595 B
text/typescript
import { EPSILON } from "../constants";
/**
* @function closeTo
* @desc 判断一个数是否在另一个数的邻域内,通常用于检验浮点计算是否精度在EPSILON以内
* @param {number} val 需要判断的数值
* @param {number} target 目标数值
* @param {number} [epsilon = Number.EPSILON] 邻域半径
* @example Mathx.closeTo(0.1 + 0.2, 0.3); // true;
* Mathx.clamp(2, 3, 1); // true;
* Mathx.clamp(2, 3, 0.5); // false;
*/
export const closeTo = (val: number, target: number, epsilon: number = EPSILON): boolean => {
return Math.abs(val - target) <= epsilon;
};