在进行两个数字计算的时候,想取小数点之后两位数,计算如下:
var a = 766.9;
var b = 0.05;
var c = a * b; // 38.345
// 我们一般取小数点后几位都是使用 toFixed(n)
c.toFixed(2); // 38.34
// 这个结果明显不符合我们的四舍五入的想法,想要的结果应该是38.35
// 这个时候查询资料发现,js有一个这个属性 Number.EPSILON
// Number.EPSILON 属性表示 1 与Number可表示的大于 1 的最小的浮点数之间的差值
// EPSILON 属性的值接近于 2.2204460492503130808472633361816E-16,或者 2-52。
// 对于上面的计算,我们这样操作
Math.round((c + Number.EPSILON) * 100) / 100; // 38.35
// 首先将数字加上精度差,乘以100之后取整,再除以100变成两位小数就可以实现精确的四舍五入