- ベストアンサー
引数をカンマ句切りしたデータにしたいです。
お世話になります。 Perlのプログラムの中で、 引数の数値を、後ろから3桁毎にカンマ句切りして 表示したいと思っています。 (例) 10000000 → 10,000,000 カンマを入れる方法を教えてください。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
$numに数値が入っているとして・・・ while($num =~ s/(.*\d)(\d\d\d)/$1,$2/){;} で行けたはず・・・一応Cygwin上のPerlで確認した所動くようです。
その他の回答 (1)
- oodaiko
- ベストアンサー率67% (126/186)
pion16 さんこんばんは。こんな感じのサブルーチンで いかがでしょうか。 一応テスト済みなので試してみて下さい。 ******************************************* #!/usr/local/bin/perl $number=<> ; &thousands; print "commanumber=$commanumber\n"; #以下が主要部分 sub thousands { $commanumber=""; chomp($number); # 改行コードを切り落とす # 3桁ごとにカンマを入れていく while(){ # 残りが3桁以下ならおしまい if(length($number)<=3){ $commanumber="$number" . "$commanumber" ; last; } $numberlength=length($number); # データの桁数を調べる $pnumber=substr($number,-3); # 下から3桁とりだし $commanumber="," . "$pnumber" . "$commanumber"; # カンマをつけて出力文字列につなぐ $number=substr($number,0,$numberlength - 3); # 下3桁を取り除いて新たなデータとする next; } } exit;
お礼
出来ました。 詳細のわかりやすいご説明ありがとうございます。
お礼
無事に動作いたしました。 ありがとうございました。