小数和百分数相互转化
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