1.表达式
对x进行四舍五入保留n位小数:
(Math.round(x * 10^n) / (10^n)).toFixed(n);
10的n次方在这里写成10^n只是为了方便表达,js中应该使用Math.pow(10,n)或1en。
2.解释
Math.round:把一个数字舍入为它最接近的整数,>=0.5入,<0.5舍。JavaScript round() 方法
toFixed(n):把一个数按照银行家舍入规则进行舍入,也就是四舍六入五成双。Javascript中 toFixed 的‘奇葩坑’
3.举例
(1)对12.5555进行四舍五入保留2位小数:
x * 10^n:12.5555*100 = 1255.55
Math.round(x * 10^n):Math.round(1255.55) = 1256
Math.round(x * 10^n) / (10^n):1256/100 = 12.56
(Math.round(x * 10^n) / (10^n)).toFixed(n):12.56.toFixed(2) = 12.56
(2)对12.5进行四舍五入保留2位小数:
x * 10^n:12.5*100 = 1250
Math.round(x * 10^n):Math.round(1250) = 1250
Math.round(x * 10^n) / (10^n):1250/100 = 12.5
(Math.round(x * 10^n) / (10^n)).toFixed(n):12.5.toFixed(2) = 12.50
toFixed(n)在这里的作用是强制保留n位小数,就像例(2)所示。