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