<script>
const getMath = function (num1, num2, op) {
let a, b, len1, len2;
try {
len1 = num1.toString().split('.')[1].length;
} catch (error) {
len1 = 0;
}
try {
len2 = num2.toString().split('.')[1].length;
} catch (error) {
len2 = 0;
}
a = num1.toString().split('.').join('');
b = num2.toString().split('.').join('');
let c = Math.pow(10, Math.abs(len1 - len2));
len1 > len2 && (b = Number(b) * c);
len1 < len2 && (a = Number(a) * c);
let d = Math.pow(10,Math.max(len1, len2))
if (op === 'jia') return (Number(a) + Number(b)) / d;
if (op === 'jian') return (Number(a) - Number(b)) / d;
if (op === 'cheng') return (Number(a) * Number(b)) / Math.pow(10,Math.max(len1, len2) * 2);
if (op === 'chu') return (Number(a) / Number(b));
}
console.log(getMath(10, 0.4, 'jia'));
</script>
关于js运算精度丢失问题-封装的方法
最新推荐文章于 2023-05-31 16:57:20 发布