分享

修复JS的四舍五入问题

 KILLKISS 2017-01-06
Number.prototype.toFixed = function(d) { 
var s = this + ""; 
if (!d) 
d = 0; 
if (s.indexOf(".") == -1) 
s += "."; 
s += new Array(d + 1).join("0"); 
if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0," + (d + 1) + "})?)\\d*$").test(s)) { 
var s = "0" + RegExp.$2, pm = RegExp.$1, a = RegExp.$3.length, b = true; 
if (a == d + 2) { 
a = s.match(/\d/g); 
if (parseInt(a[a.length - 1]) > 4) { 
for (var i = a.length - 2; i >= 0; i--) { 
a[i] = parseInt(a[i]) + 1; 
if (a[i] == 10) { 
a[i] = 0; 
b = i != 1; 
} else 
break; 
s = a.join("").replace(new RegExp("(\\d+)(\\d{" + d + "})\\d$"), 
"$1.$2"); 
if (b) 
s = s.substr(1); 
return (pm + s).replace(/\.$/, ""); 
return this + ""; 
}; 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多