js 实现将数字进行千分位处理

测试样例
样例1:

输入:s = "1294512.12412"
输出:'1,294,512.12412'

样例2:

输入:s = "0000123456789.99"
输出:'123,456,789.99'

样例3:

输入:s = "987654321"
输出:'987,654,321'

方案一:

function solution(s) {
    let [integralPart, fractionalPart] = s.split('.');
    integralPart = BigInt(integralPart).toString();

    const result = [];
    for (let i = integralPart.length - 1; i >= 0; i--) {
        const start = integralPart.length - i - 3;
        const end = integralPart.length - i;
        if (i % 3 === 0) {
            if (integralPart.slice(start, end).length < 3) {
                result.push(integralPart.slice(0, end))
            } else {
                result.push(integralPart.slice(start, end))
            }
        }
    }
    return fractionalPart ? `${result.join(',')}.${fractionalPart}` : result.join(',');
}

function main() {
    console.log(solution("1294512.12412") === '1,294,512.12412');  // true
    console.log(solution("0000123456789.99") === '123,456,789.99');  // true
    console.log(solution("987654321") === '987,654,321');  // true
}

main();

方案二(优):

function solution(s) {
    let [integralPart, fractionalPart] = s.split('.');
    integralPart = BigInt(integralPart).toString();

    // 格式化整数部分
    let formattedIntegralPart = '';
    for (let i = integralPart.length - 1, count = 0; i >= 0; i--, count++) {
        if (count > 0 && count % 3 === 0) {
            formattedIntegralPart = ',' + formattedIntegralPart;
        }
        formattedIntegralPart = integralPart[i] + formattedIntegralPart;
    }

    // 合并整数部分和小数部分
    const result = fractionalPart ? `${formattedIntegralPart}.${fractionalPart}` : formattedIntegralPart;

    return result;
}

function main() {
    console.log(solution("1294512.12412") === '1,294,512.12412');  // true
    console.log(solution("0000123456789.99") === '123,456,789.99');  // true
    console.log(solution("987654321") === '987,654,321');  // true
}

main();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容