js 小数以整数形式进行四舍五入


/**
*  此方法以整数计算 不会有浮点为题
* @param val // 最好是字符串
* @param num //保留小数位数 默认2
* @returns {number} //如果传入val非数字返回0
*/

function(val, num){
    num = num ? num : 2; //默认两位小数
val = Number(val).toString() == 'NaN' ? 0 : Number(val);
var value = (val + '').split(".");
var decResult = ""; //小数结果
var intValue = value[0]; //整数
var decValue = value[1]; //小数
var recursion = function(decList, num, join){ //递归计算进一
var i = Number(decList[num - 1])
if(i + join > 9){
decList[num - 1] = '0'; //归零
if(num - 1 == 0){ //小数位都进一 给整数加一
intValue = Number(intValue) + 1;
return decList;
}else{
return recursion(decList, num - 1, join); //进一
}
}else{
decList[num - 1] = (i + join).toString();
return decList;
}
}
if(decValue){
var decList = decValue.split('');
if(decList.length > num){ //如果小数位多于截取位数进行计算
var join = 0;
if(decList[num] >= 5){ //截取位数的后一位大于5进一
join = 1;
}
decResult = recursion(decList, num, join).join("").substring(0, num); //截取小数位
}else{
decResult = decValue;
}
}
return Number(intValue + '.' + decResult);
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM