JS 控制小数位数

  昨天在用JS对前台浮点数进行合算时发现:

0.05+1.08=1.1300000000000001

  上网查一查的确存在这种Bug,除了位数上控制之外也没什么也好的方法(希望高手能提出

其它思路)。

  于是自己编写一个控制小数位数的JS方法,解决开发燃眉之急

//小数位数控制,可以四舍五入
            function Fractional(n) {
                //小数保留位数
                var bit = 2;
                //加上小数点后要扩充1位
                bit++;
                //数字转为字符串
                n = n.toString();
                //获取小数点位置
                var point = n.indexOf('.');
                //n的长度大于保留位数长度
                if (n.length > point + bit) {
                    //保留小数后一位是否大于4,大于4进位
                    if (parseInt(n.substring(point + bit, point + bit + 1)) > 4) {
                        return n.substring(0, point) + "." + (parseInt(n.substring(point + 1, point + bit)) + 1);
                    }
                    else {
                        return n.substring(0, point) + n.substring(point, point + bit);
                    }
                }
                return n;
            }
posted @ 2011-08-02 15:33  静至  阅读(11090)  评论(7编辑  收藏  举报