我想在javascript中将数字四舍五入到小数点后两位。我发现很多关于 SO 的帖子都说.toFixed
方法的行为对于不同的浏览器是不可预测的。
并在许多地方找到了这个解决方案,无一例外地被接受
Math.round(yournumber * 100 ) / 100
但是我从这个计算中也发现了正确但一些错误的结果,比如
Math.round( 1.27532423 * 100 ) / 100 = 1.28 // this seems correct
Math.round( 1.275 * 100 ) / 100 = 1.27 // as I understand it should also 1.28
Math.round( 1.276 * 100 ) / 100 = 1.28
我是否遗漏了什么或我的理解不正确?
编辑
才发现
1.275 * 100
正在返回127.49999999999999
,这就是原因,如果它返回127.5
,它将产生正确的结果。
但是为什么它会返回这个127.49999999999999
????