function formatNumberWithCommas(number) {
  let numberStr = number.toString();
  let formattedNumber = '';
  let decimalSeparatorIndex = numberStr.indexOf('.');

  // 处理整数部分
  let integerPart = numberStr;
  if (decimalSeparatorIndex !== -1) {
    integerPart = numberStr.slice(0, decimalSeparatorIndex);
  }

  let integerPartLength = integerPart.length;
  let numGroup = Math.floor(integerPartLength / 3); // 计算逗号分组的数量
  let numDigitsFirstGroup = integerPartLength % 3; // 第一组逗号前的位数

  // 处理第一组逗号前的位数
  if (numDigitsFirstGroup > 0){
    formattedNumber += integerPart.substr(0, numDigitsFirstGroup);
    if (numGroup > 0) {
      formattedNumber += ',';
    }
  }

  // 处理剩余的逗号分组
  let startPos = numDigitsFirstGroup;
  for (let i = 0; i < numGroup; i++) {
    formattedNumber += integerPart.substr(startPos, 3);
    startPos += 3;
    if (i !== numGroup - 1) {
      formattedNumber += ',';
    }
  }

  // 处理小数部分
  if (decimalSeparatorIndex !== -1) {
    formattedNumber += numberStr.slice(decimalSeparatorIndex);
  }

  return formattedNumber;
}

// 示例用法
const number = 1234567.89;
const formattedNumber = formatNumberWithCommas(number);
console.log(formattedNumber); // 输出:1,234,567.89