>》>》>》>》

小数和百分数相互转化

function toPercent(point,num){
    
            if (point==0) {
                return 0;
            }
      
            var str=Number(point*100).toFixed(num);
            str+="%";
            return str;
   }
    

//point  接收的数据
//num   保留小数位

toFixed() 方法

可把 Number 四舍五入为指定小数位数的数字。

NumberObject.toFixed(num)

num:必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

 

传说中这个方法有什么银行家算法,并不是四舍五入,我们可以对这个方法重写

银行家舍入法:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。

Number.prototype.toFixed = function (s) {
        var times = Math.pow(10, s);
        var des = this * times + 0.5;
        des = parseInt(des, 10) / times;
        return des + '';
};

定义全局方法对负数进行处理

 // num表示需要四舍五入的小数
 // s表示需要保留几位小数
    function toFixed(num, s) {
        var times = Math.pow(10, s);
        if (num < 0) {
            num = Math.abs(num);//先把负数转为正数,然后四舍五入之后再转为负数
            var des = parseInt((num * times + 0.5), 10) / times;
            return -des;
        } else {
            var des = parseInt((num * times + 0.5), 10) / times;
            return des;
        }
    }
    console.log(toFixed(0.335, 2));//0.34
    console.log(toFixed(-0.335, 2));//-0.34
    console.log(toFixed(-1.5, 0));//-2

 

 

百分数转小数

var percent = "4.2%";
        function toPoint(percent){
                var str=percent.replace("%","");
                    str= str/100;
                return str;
        }
        var result = toPoint(percent); //0.042

 

 

 

 

 

posted @ 2019-11-17 11:24  大、锤  阅读(979)  评论(0编辑  收藏  举报