小数的四舍五入法
PS: 2017-03-14 更新
原先的方法没有考虑到负数的情况,会出现 -100.simpleFixed() => -99.99 的情况。
以下是改良版:
function simpleFixed(fractionDigits = 2){
let temp = this > 0 ? (this * Math.pow( 10, fractionDigits ) + 0.5) : (this * Math.pow( 10, fractionDigits ) - 0.5);
return parseInt(temp)/Math.pow(10,fractionDigits);
}
Number.prototype.simpleFixed = simpleFixed;
/**
* js自带的toFixed方法,采用的是四舍六入五成双方法,对于普通用户十分诡异,而且返回的是一个字符串
* 所以写一个简单的处理方法
*
* @param {number} num 待处理数字
* @param {number} fractionDigits=2 保留有效数字
* @returns {number} 返回处理后的数字
*
* @example
*
* _.simpleFixed(1.234,2);
* //=> 1.23
*/
//四舍五入法,返回数字
simpleFixed=(num,fractionDigits=2)=>{
return (parseInt(num * Math.pow( 10, fractionDigits ) + 0.5)/Math.pow(10,fractionDigits));
};
module.exports = simpleFixed;