1234567891011121314151617181920212223242526272829303132 |
- 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
- }
|