この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
65. 桁区切りのコンマ

function addComma(num) {
  // 数字を文字列に変換して、小数点で区切る
  let [integer, decimal] = num.toString().split('.');
  // 整数部分にコンマをつける
  integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
  // 小数部分がある場合は再度つなぎ合わせる
  if (decimal) {
    decimal = decimal.slice(0, 5); // 小数点以下最大5桁まで表示
    return `${integer}.${decimal}`;
  } else {
    return integer;
  }
}

正規表現を使って、整数部分にコンマを挿入する部分がポイントです。 \B(?=(\d{3})+(?!\d)) は、「数字が3つずつ、かつ末尾に数字がない場所」を表します。 ここで \B という表現は「単語境界でない」という意味で、\b は単語境界であることに注意してください。

また、小数部分を最大5桁まで表示するようにしています。 小数点以下が5桁以上の場合は切り捨てられます。