web
9 小时以前 49fa0d82a40345342966e810b44429aec0480ef3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { isNumber } from '../isNumber';
/**
 * 减法函数,用于处理浮点数减法并保持精度。
 * @param {number} num1 - 被减数。
 * @param {number} num2 - 减数。
 * @returns {number} 减法运算的结果,保留正确的精度。
 */
export function floatSub(num1 : number, num2 : number) : number {
    if (!(isNumber(num1) || isNumber(num2))) {
        console.warn('Please pass in the number type');
        return NaN;
    }
    let r1:number, r2:number, m:number, n:number;
    try {
        r1 = num1.toString().split('.')[1].length;
    } catch (error) {
        r1 = 0;
    }
    try {
        r2 = num2.toString().split('.')[1].length;
    } catch (error) {
        r2 = 0;
    }
    m = Math.pow(10, Math.max(r1, r2));
    n = r1 >= r2 ? r1 : r2;
    // #ifndef APP-ANDROID
    return Number(((num1 * m - num2 * m) / m).toFixed(n));
    // #endif
    // #ifdef APP-ANDROID
    return parseFloat(((num1 * m - num2 * m) / m).toFixed(n));
    // #endif
}