27 lines
778 B
TypeScript
27 lines
778 B
TypeScript
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;
|
|
}
|
|
|
|
const getDecimalLen = (n: number):number => {
|
|
const arr = n.toString().split('.')
|
|
if(arr.length > 0) return arr[1].length
|
|
return 0
|
|
};
|
|
const r1 = getDecimalLen(num1);
|
|
const r2 = getDecimalLen(num2);
|
|
|
|
// 计算需要扩大的倍数
|
|
const m = Math.pow(10, Math.max(r1, r2));
|
|
// 返回相加结果
|
|
return Math.round((num1 * m + num2 * m)) / m;
|
|
} |