如题   很多数有这问题  脚本,直接  alert(1279*(1-0.333) );    结果应该是853.093  但为什么 ,alert出来的是853.0930000000001 呢?

解决方案 »

  1.   

    alert(sdbl(1279*(1-0.333)) ); 
      

  2.   

    这问题,问我算找对人了,
    不管是哪门语言,计算浮点数相加减都会出现误差,
    原因不细说,说你需要的。
    js中这样解决:alert(1279*(1-0.333).toFixed(5) )
    那个五表示保留五位小数,结果就是你想要的,因为N个0后的那个1会被四舍五入。
    希望能帮到你。
      

  3.   

    alert(sdbl(1279*(1-0.333)) );   这种写法 ,直接报错 。
    alert(1279*(1-0.333).toFixed(5) )  这种写法 ,结果是853.09300   但我就想要853.093   咋写呢?
      

  4.   

    alert(1279*(1-0.333).toFixed(5) ) 这种写法 ,结果是853.09300 但我就想要853.093 咋写呢?
    3楼都说了呀,那就alert(1279*(1-0.333).toFixed(3) )
      

  5.   


    <script type="text/javascript"> 
          
      function ForDight(Dight, How)
      {
          Dight = Math.round(Dight * Math.pow(10, How)) / Math.pow(10, How);
          return Dight;
      }  
       alert(ForDight(1279 * (1 - 0.333),3));</script>