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 }