浮点数保留小数点位数的做法之一: Math.round(_value * n) / n;
例如:
保留小数点后1位,则 n = 10 * n= 1 / 0.1
保留小数点后2位,则 n = 100 * n= 1 / 0.01
保留小数点后3位,则 n = 1000 * n= 1 / 0.001
至于为什么是先乘后除,可以参考如下文章:
http://www.cnblogs.com/JeffreyZhao/archive/2009/11/24/precision-of-float-point-calculation.html
基于乘法不会损失精度(有条件的),所以对于精度有要求的场合,上面的公式可以改为:
Math.round(_value * 10) * 0.1
Math.round(_value * 100) * 0.01
Math.round(_value * 1000) * 0.001