価格の表示など、3桁毎に数字を区切りたいことがある。このような場合、どういった処理を書けば良いのだろうか? 次のような commify 関数を自分のライブラリに準備しておくとかなり重宝する。
サンプル
;#
;#カンマ区切り
;#
print commify(1234567890);
#----------------------------------------------#
#■数字を三桁ずつカンマで区切る
#----------------------------------------------#
sub commify{
my $num = shift;
my $i = '';
my $j = '';
if ($num =~ /^[-+]?\d\d\d\d+/g) {
for ($i = pos($num) - 3, $j = $num =~ /^[-+]/; $i > $j; $i -= 3) {
substr($num, $i, 0) = ',';
}
}
return($num);
}
実行結果
1,234,567,890
参考ページ
このブログを応援する
お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。