测试样例
样例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();