index.ts 844 Bytes
import { isNumber } from '../isNumber'
/**
 * 返回两个浮点数相加的结果
 * @param num1 第一个浮点数
 * @param num2 第二个浮点数
 * @returns 两个浮点数的相加结果
 */
export function floatAdd(num1 : number, num2 : number) : number {
	// 检查 num1 和 num2 是否为数字类型
	if (!(isNumber(num1) || isNumber(num2))) {
		console.warn('Please pass in the number type');
		return NaN;
	}

	let r1 : number, r2 : number, m : number;

	try {
		// 获取 num1 小数点后的位数
		r1 = num1.toString().split('.')[1].length;
	} catch (error) {
		r1 = 0;
	}

	try {
		// 获取 num2 小数点后的位数
		r2 = num2.toString().split('.')[1].length;
	} catch (error) {
		r2 = 0;
	}

	// 计算需要扩大的倍数
	m = Math.pow(10, Math.max(r1, r2));

	// 返回相加结果
	return (num1 * m + num2 * m) / m;
}