とあるエンジニアの闇歴史帳

コピペで使える便利Wiki ※現在構築中です。

ユーザ用ツール


perl:commify

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

perl:commify [2017/12/14 20:18]
perl:commify [2020/06/23 14:10] (現在)
行 1: 行 1:
 +====== 数字を三桁ずつカンマで区切る - Perl ======
 +~~socialite~~
 +<note important>この記事は2006年10月05日に書かれたものです。</note>
  
 +価格の表示など、3桁毎に数字を区切りたいことがある。このような場合、どういった処理を書けば良いのだろうか? 次のような commify 関数を自分のライブラリに準備しておくとかなり重宝する。
 +
 +===== サンプル =====
 +<code perl>
 +;#
 +;#カンマ区切り
 +;#
 +
 +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);
 +}
 +</code>
 +
 +===== 実行結果 =====
 +<code>
 +1,234,567,890
 +</code>
 +
 +===== 参考 =====
 +  = Perlメモ/OHZAKI氏:http://www.din.or.jp/~ohzaki/perl.htm#NumberWithComma
 +  
 +  
 +===== 関連書籍 =====
 +{{amazon>jp:4873113148}}
 +<html><p style="clear:both"></p></html>
 +
 +{{amazon>jp:4798139815}}
 +<html><p style="clear:both"></p></html>
 +
 +{{tag>CGI・Perl例文集 Perl 文字列 数値}}
 +~~socialite~~

関連ページ