1.Math.round方法
Math.round() 方法可把一个数字舍入为最接近的整数。例如:Math.round(x),则是将x取其最接近的整数。
简单例子:
var num=Math.round(568.58)
console.log(num);
// 输出结果是:569
说明:Math.round方法使用的是四舍五入中的方法,符合数学中取舍的规则。结果只能是整数,对于小数的处理没有那么便捷,但是可以根据不同的要求,进行自定义的处理。
2. tofixed方法
toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(2)
例子:
var number =6.;
var num = number.toFixed(2);
console.log(num);输出结果是:6.44
// 期望输出结果是:6.45
说明:tofixed方法四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则,银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶法
解决办法
1。
roundFixed(num, fixed) {//修改js四舍五入 var pos = num.toString().indexOf('.'), decimal_places = num.toString().length - pos - 1, _int = num * Math.pow(10, decimal_places), divisor_1 = Math.pow(10, decimal_places - fixed), divisor_2 = Math.pow(10, fixed); return Math.round(_int / divisor_1) / divisor_2; }
讯享网
2.
讯享网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 + ""; };

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/40204.html