|
// @ts-nocheck
|
|
import {isNumber} from '../isNumber';
|
|
// #ifdef APP-ANDROID
|
|
import BigDecimal from 'java.math.BigDecimal'
|
|
// import BigDecimal from 'java.math.BigDecimal'
|
|
// import StringBuilder from 'java.lang.StringBuilder'
|
|
// import java.math.BigDecimal;
|
|
// #endif
|
|
|
|
/**
|
|
* 乘法函数,用于处理浮点数乘法并保持精度。
|
|
* @param {number} num1 - 第一个乘数。
|
|
* @param {number} num2 - 第二个乘数。
|
|
* @returns {number} 乘法运算的结果,保留正确的精度。
|
|
*/
|
|
export function floatMul(num1 : number, num2 : number) : number {
|
|
if (!(isNumber(num1) || isNumber(num2))) {
|
|
console.warn('Please pass in the number type');
|
|
return NaN;
|
|
}
|
|
let m = 0;
|
|
// #ifdef APP-ANDROID
|
|
let s1 = BigDecimal.valueOf(num1.toDouble()).toPlainString(); //new UTSNumber(num1).toString() // //`${num1.toFloat()}`// num1.toString(),
|
|
let s2 = BigDecimal.valueOf(num2.toDouble()).toPlainString(); //new UTSNumber(num2).toString() //`${num2.toFloat()}`//.toString();
|
|
// #endif
|
|
// #ifndef APP-ANDROID
|
|
let s1:string = `${num1}`// num1.toString(),
|
|
let s2:string = `${num2}`//.toString();
|
|
// #endif
|
|
|
|
try {
|
|
m += s1.split('.')[1].length;
|
|
} catch (error) { }
|
|
try {
|
|
m += s2.split('.')[1].length;
|
|
} catch (error) { }
|
|
|
|
// #ifdef APP-ANDROID
|
|
return parseFloat(s1.replace('.', '')) * parseFloat(s2.replace('.', '')) / Math.pow(10, m);
|
|
// #endif
|
|
// #ifndef APP-ANDROID
|
|
return Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m);
|
|
// #endif
|
|
}
|