记录一下js解决数字加减乘除出现很多位小数的问题:
//计算相加
function calcAdd(a, b) {
var c, d, e;
try {
c = a.toString().split(".")[1].length;
} catch (f) {
c = 0;
}
try {
d = b.toString().split(".")[1].length;
} catch (f) {
d = 0;
}
return e = Math.pow(10, Math.max(c, d)), (calcMul(a, e) + calcMul(b, e)) / e;
}
//计算相减
function calcSub(a, b) {
var c, d, e;
try {
c = a.toString().split(".")[1].length;
} catch (f) {
c = 0;
}
try {
d = b.toString().split(".")[1].length;
} catch (f) {
d = 0;
}
return e = Math.pow(10, Math.max(c, d)), (calcMul(a, e) - calcMul(b, e)) / e;
}
//计算乘
function calcMul(a, b) {
var c = 0,
d = a.toString(),
e = b.toString();
try {
c += d.split(".")[1].length;
} catch (f) { }
try {
c += e.split(".")[1].length;
} catch (f) { }
return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
}
//计算除
function calcDiv(a, b) {
var c, d, e = 0,
f = 0;
try {
e = a.toString().split(".")[1].length;
} catch (g) { }
try {
f = b.toString().split(".")[1].length;
} catch (g) { }
return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), calcMul(c / d, Math.pow(10, f - e));
}
这篇博客介绍了如何使用JavaScript解决在进行加、减、乘、除运算时出现的小数位数过多的问题。通过定义一系列函数,如calcAdd、calcSub、calcMul和calcDiv,可以确保数值计算的精度,避免因浮点数运算误差导致的结果不准确。

1548

被折叠的 条评论
为什么被折叠?



