zoukankan      html  css  js  c++  java
  • [转帖]javascript做浮点数运算精确问题

    javascript做浮点数运算精确问题在用javascript做浮点数运算时,当次数变多时,就会有误差(不作除法); 

    如0.01+0.01+0.01+0.01+0.01就可能等于0.04999999也许会是0.050000000001之类的,在c语言里浮点运算就会有这样的情况。

    在财务软件里,这样的计算是不允许的,java里有个类可以精确的计算,但是javascript里没有类似的类,只有采用精确到第x位的方法了以下函数 

    //小数的四舍五入 //f是你要求精确的浮点数,size是精确到的位数
    <script language="javascript">
    function formatfloat(f,size)  

    {  

         var tf=f*Math.pow(10,size);  

         tf
    =Math.round(tf+0.000000001);  

         tf
    =tf/Math.pow(10,size); return tf;  

    }  

    tf
    =Math.round(tf+0.000000001);
    </script> 

    是将tf四舍五入,tf要加0.000000001是因为,根据javascript帮助,round是四舍五入,但是经我测试,0.5时,它不进位,加一点就好了(不知道为什么);实际用的效果:当我设置成精确到4位时,象0.04999999这样的数会变成0.05(达到要求,目前没发现什么问题) 
  • 相关阅读:
    Django 的简单ajax
    django 模板语言的注释操作
    Django 使用Paginator分页
    Django 使用allauth报错
    selenium登录 京东滑动验证码
    The usage of Markdown---表格
    The usage of Markdown---引用
    The usage of Markdown---代码块
    The usage of Markdown---目录
    The usage of Markdown---链接的使用
  • 原文地址:https://www.cnblogs.com/Excellent/p/871974.html
Copyright © 2011-2022 走看看