我想最多四舍五入两位小数,但只有在必要时。
输入:
10
1.7777777
9.1
输出:
10
1.78
9.1
如何在JavaScript中执行此操作?
我想最多四舍五入两位小数,但只有在必要时。
输入:
10
1.7777777
9.1
输出:
10
1.78
9.1
如何在JavaScript中执行此操作?
当前回答
尝试使用jQuery.number插件:
var number = 19.8000000007;
var res = 1 * $.number(number, 2);
其他回答
它可能对你有用,
Math.round(num * 100)/100;
了解toFixed和round之间的区别。您可以查看Math.round(num)vs num.toFixed(0)和浏览器不一致性。
这个答案更关乎速度。
var precalculatedPrecisions = [1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10];
function round(num, _prec) {
_precision = precalculatedPrecisions[_prec]
return Math.round(num * _precision + 1e-14) / _precision ;
}
jsPerf关于这一点。
下面是一个原型方法:
Number.prototype.round = function(places){
places = Math.pow(10, places);
return Math.round(this * places)/places;
}
var yournum = 10.55555;
yournum = yournum.round(2);
2017只需使用本机代码.toFixed()
number = 1.2345;
number.toFixed(2) // "1.23"
如果您需要严格要求并在需要时添加数字,可以使用替换
number = 1; // "1"
number.toFixed(5).replace(/\.?0*$/g,'');
如果使用的是Lodash库,可以使用Lodash的舍入方法,如下所示。
_.round(number, precision)
例如:
_.round(1.7777777, 2) = 1.78