欢迎来到QQ技术交流群:126095418
我们直接来看这个函数
<script>
/**
* 格式化数字为金钱的千分位格式
* @param num 需要格式化的值
* @param bit 小数点后需要保留的位数
* @param down 四舍五入是否是向下取整
* @returns {string}
*/
function numberFormat(num, bit, down){
if(!num){
num = 0;
}
num = String(num);
var tempNum = num.split('.');
var firstNum = tempNum[0];
var lastNum = tempNum[1];
var extNum = '';
var returnNum = '';
var reg = /\d{1,3}(?=(\d{3})+$)/g;
if(~firstNum.indexOf(',')){
firstNum = firstNum.replace(/,/ig,'');
}
if(!Number(firstNum) && Number(firstNum) !== 0){
console.log('num整数位传值不合法');
return;
}
if(!lastNum){
if(bit){
let temp = '';
for(var i=0; i<bit; i++){
temp += '0';
}
extNum = '.' + temp;
}
}else{
if(!Number(lastNum) && Number(lastNum) !== 0){
console.log('num小数位传值不合法');
return;
}
if(bit){
let temp = lastNum.substr(bit, 1);
if(temp > 4){
if(down){
extNum = '.' + lastNum.substr(0, bit);
}else{
extNum = '.' + (Number(lastNum.substr(0, bit)) + 1);
}
}else{
extNum = '.' + lastNum.substr(0, bit);
}
}else{
if(Number(lastNum) > 0){
extNum = '.' + lastNum;
}
}
}
returnNum = (firstNum + '').replace(reg, '$&,') + extNum;
return returnNum;
}
console.log(numberFormat(18550,2));
</script>
这个函数分别接收了三个参数,第一个参数