この解答例は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桁以上の場合は切り捨てられます。