init
This commit is contained in:
45
uni_modules/lime-shared/floatDiv/index.ts
Normal file
45
uni_modules/lime-shared/floatDiv/index.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { floatMul } from '../floatMul';
|
||||
import { isNumber } from '../isNumber';
|
||||
|
||||
/**
|
||||
* 除法函数,用于处理浮点数除法并保持精度。
|
||||
* @param {number} num1 - 被除数。
|
||||
* @param {number} num2 - 除数。
|
||||
* @returns {number} 除法运算的结果,保留正确的精度。
|
||||
*/
|
||||
export function floatDiv(num1:number, num2:number):number {
|
||||
// 如果传入的不是数字类型,则打印警告并返回NaN
|
||||
if (!isNumber(num1) || !isNumber(num2)) {
|
||||
console.warn('请传入数字类型');
|
||||
return NaN;
|
||||
}
|
||||
|
||||
let m1 = 0, // 被除数小数点后的位数
|
||||
m2 = 0, // 除数小数点后的位数
|
||||
s1 = num1.toString(), // 将被除数转换为字符串
|
||||
s2 = num2.toString(); // 将除数转换为字符串
|
||||
|
||||
// 计算被除数小数点后的位数
|
||||
try {
|
||||
m1 += s1.split('.')[1].length;
|
||||
} catch (error) {}
|
||||
|
||||
// 计算除数小数点后的位数
|
||||
try {
|
||||
m2 += s2.split('.')[1].length;
|
||||
} catch (error) {}
|
||||
|
||||
// 进行除法运算并处理小数点后的位数,使用之前定义的乘法函数保持精度
|
||||
// #ifdef APP-ANDROID
|
||||
return floatMul(
|
||||
parseFloat(s1.replace('.', '')) / parseFloat(s2.replace('.', '')),
|
||||
Math.pow(10, m2 - m1),
|
||||
);
|
||||
// #endif
|
||||
// #ifndef APP-ANDROID
|
||||
return floatMul(
|
||||
Number(s1.replace('.', '')) / Number(s2.replace('.', '')),
|
||||
Math.pow(10, m2 - m1),
|
||||
);
|
||||
// #endif
|
||||
}
|
Reference in New Issue
Block a user