JS浮点计算问题
2017-08-02 15:22
218 查看
方法一:
加减乘除
function add(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)), (mul(a, e) + mul(b, e)) / e;
}
function sub(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)), (mul(a, e) - mul(b, e)) / e;
}
function mul(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 div(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 =
4000
Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), mul(c / d, Math.pow(10, f - e));
}
方法二:
加法计算function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}
相关文章推荐
- JS浮点计算问题
- js浮点数精度问题(js计算中遇到的坑)
- js浮点数计算问题 + 金额大写转换
- js中浮点数计算问题(php判断float同适用)
- js计算出现多位小数-Javascript 浮点运算问题分析与解决
- js浮点数精度问题(js计算中遇到的坑)
- 关于js浮点精度计算不准确的问题及解决方法
- JS浮点计算精度问题分析与解决
- [导入]js 浮点运算表达式 精确计算(vb没有这个问题)
- js 浮点小数计算精度问题 parseFloat 精度问题
- 问题总结···js浮点小数计算问题
- js 浮点数计算精度不准确问题
- 有关不同浏览器不同版本的css以及js计算高度的问题
- 用JS做计算的时候小数位不正常--Js中parseFloat()方法所产生的精度问题
- js跟java计算文件MD5不一致问题
- javascript(js)浮点数字精度问题的一个解决办法。
- js中的小数计算精度问题,修正计算精度
- Warning!浮点数计算问题
- js如何计算浮点数
- 奇怪的js问题(JavaScript浮点运算的问题) float类型相乘的有时候 会出现错误!! 注意!!!