呵呵,浮点数计算的机制你查一下吧

解决方案 »

  1.   


    恩 计算得非常精确啊
      

  2.   

    这个不只是js,其它一些语言里也有同样问题的。简单说就是浮点数在计算机里的存储,比如说5.0,一般不是存储为5.0而是4.9999999...这样子(具体原因和位数记不清了,自己查吧),所以5*2.005通常是在计算4.99999999...*2.00499999...,就是你顶楼那个答案。解决方法:
    1.拿.toFixed()方法四舍五入,但这个还是可能存在问题。
    2.转化为整数后再进行计算,网上有不少代码,自己查查。
      

  3.   

     一楼那家伙都4颗星了还在乎这20分. 诶~   !--