美文网首页
JavaScript Math.round()四舍五入误差问题

JavaScript Math.round()四舍五入误差问题

作者: novaDev | 来源:发表于2018-03-31 23:14 被阅读0次
    Math.round(1.3) //1
    Math.round(1.6) //2
    

    然后在对-0.5或者-2.5进行round的时候却出现了意料之外的结果:

    Math.round(-0.5) //0
    Math.round(-2.5) //-2
    

    究其原因,主要是因为Math.round的实现原理造成的:
    Math.round(n)首先对n进行+0.5操作,然后对结果进行Math.floor()运算。于是Math.round(-2.5)的运算过程可以看做:

    function mathround(n) { //-2.5
        var nn = n + 0.5 //-2
        return Math.floor(nn) //-2
    }
    mathround(-2.5)
    

    相关文章

      网友评论

          本文标题:JavaScript Math.round()四舍五入误差问题

          本文链接:https://www.haomeiwen.com/subject/uhgncftx.html