jiangchunyan
侠客
侠客
  • 最后登录2019-08-21
  • 发帖数9
  • 社区居民
  • 忠实会员
阅读:147回复:1

[javascript]解决小数加法出现浮点是问题(保留两位小数并,进一位)

楼主#
更多 发布于:2019-08-09 18:14

要求保留两位小数,第三位小数如果大于1就进一位
eg:0.590  结果是  0.59
0.591  结果是0.6
0.562 解果是 0.56


static decimal(ber){
            ber = ber + "";
            if(ber.indexOf(".")==-1){
                return ber;
            }
            var len = ber.length;
var dot_len = ber.indexOf(".") + 1;
var strCount=ber.substr(0,dot_len+3).toString().split("")
var count = len - dot_len;

            if(count <=2){
                return ber;
}

if(strCount[strCount.length -1]==0){
return ber.substr(0,dot_len+2)

}
else{
var arg1=Number(ber.substr(0,dot_len+1));
var arg2=(Number(ber.substr(dot_len+1,1))+1)*0.01;
var r1, r2, m, c;
try {
r1 = arg1.toString().split(".")[1].length;
}
catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
}
catch (e) {
r2 = 0;
}
c = Math.abs(r1 - r2);
m = Math.pow(10, Math.max(r1, r2));
if (c > 0) {
var cm = Math.pow(10, c);
if (r1 > r2) {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", "")) * cm;
} else {
arg1 = Number(arg1.toString().replace(".", "")) * cm;
arg2 = Number(arg2.toString().replace(".", ""));
}
} else {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", ""));
}
console.log((arg1 + arg2) / m)
return (arg1 + arg2) / m;
            }
       }
doubleyong
管理员
管理员
  • 最后登录2019-08-26
  • 发帖数636
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
沙发#
发布于:2019-08-12 14:07
哈哈,这个可以有
知识需要管理,知识需要分享
游客


返回顶部