« 指定バイト数で自動的に改行する (Perl. Jcode.pm, jfold) | メイン | 重複しないユニークなIDを生成する (Perl, ID, SHA1・MD5) »

カテゴリー:数値 文字列 

数字を三桁ずつカンマで区切る (Perl, commify)

このエントリーを含むはてなブックマーク  livedoorクリップ  数字を三桁ずつカンマで区切る (Perl, commify)をdel.icio.usに追加  数字を三桁ずつカンマで区切る (Perl, commify)をYahoo!ブックマークに追加  数字を三桁ずつカンマで区切る (Perl, commify)をニフティクリップに追加

価格の表示など、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

参考:Perlメモ/OHZAKI氏




トラックバック

このエントリーのトラックバックURL:
http://katsubemakito.net/mt/mt-tb.cgi/326

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

VPSレンタルサーバー




クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.