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