前端面试题--将数字返回货币

问题

1.函数传递数字,返回以三位一个逗号值

1.正则表达方式

思路:
1.将数字强行转换成数字;
2.将数字以小数点分割;
3.将分割前面的使用这则表达替换成逗号
4.返回结果;

function NumFun(num){
	const numList = Number(num).split('.');
	const num1= numList[0].replace(/\B(?=(\d{3})+(?!\d))/g,',')
	const num2 = numList[1]|| ''
	return `${num1}.${num2}`
}
NUmFn(122233.1121)
function Num(num,n) {
    const nums= Number(num).toFixed(n);
    const numsList = nums.split('.');
    const integerPart = numsList[0];
    const decimalPart = numsList[1] || '';
    const formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g,',');
    return `${formattedInteger}.${decimalPart}`
}
console.log(Num(10000000.11222,2));

2.js方式

思路:
1.将数字强行转换数字,并以小数点分割;
2.将拿到整数反转进行循环;
3.在循环中判断3倍速位置的,插入逗号;
4.将得到的值转换字符;
5.返回结果;

function Num2(num,n){
    const nums= Number(num).toFixed(n);
    const NumList = nums.split('.');
    const integerPart = [...NumList[0]].reverse()
    const decimalPart = NumList[1] || '';
    for (let i = 0; i < integerPart.length; i++) {
        if ((i + 1) % 4 === 0) {
            integerPart.splice(i, 0, ',')
        }
      }
    return integerPart.reverse().join('')+'.'+decimalPart
}
console.log(Num2(10121212112.111,2));

这里切记使用foreach

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值