| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /**
- * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
- * SPDX-License-Identifier: MIT
- */
- import { Epsilon } from './constant';
- /** 检查浮点数 a 是否等于 b */
- export const isEqual = (a: number | undefined, b: number | undefined): boolean => {
- if (a === undefined || b === undefined) {
- return false;
- }
- // 检查 a 和 b 的差的绝对值是否小于 Epsilon
- return Math.abs(a - b) < Epsilon;
- };
- /** 检查浮点数 a 是否小于 b */
- export const isLessThan = (a: number | undefined, b: number | undefined): boolean => {
- if (a === undefined || b === undefined) {
- return false;
- }
- // 检查 a 是否显著小于 b
- return b - a > Epsilon;
- };
- /** 检查浮点数 a 是否大于 b */
- export const isGreaterThan = (a: number | undefined, b: number | undefined): boolean => {
- if (a === undefined || b === undefined) {
- return false;
- }
- return a - b > Epsilon;
- };
- /** 检查浮点数 a 是否小于等于 b */
- export const isLessThanOrEqual = (a: number | undefined, b: number | undefined): boolean =>
- isEqual(a, b) || isLessThan(a, b);
- /** 检查浮点数 a 是否大于等于 b */
- export const isGreaterThanOrEqual = (a: number | undefined, b: number | undefined): boolean =>
- isEqual(a, b) || isGreaterThan(a, b);
- /** 检查值是否是数字类型 */
- export const isNumber = (value: unknown): value is number =>
- typeof value === 'number' && !isNaN(value);
|