お世話になります。

Perlのプログラムの中で、
引数の数値を、後ろから3桁毎にカンマ句切りして
表示したいと思っています。
(例)

10000000 → 10,000,000

カンマを入れる方法を教えてください。

よろしくお願いいたします。

A 回答 (2件)

$numに数値が入っているとして・・・



while($num =~ s/(.*\d)(\d\d\d)/$1,$2/){;}

で行けたはず・・・一応Cygwin上のPerlで確認した所動くようです。
    • good
    • 0
この回答へのお礼

無事に動作いたしました。
ありがとうございました。

お礼日時:2001/10/31 08:19

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;
    • good
    • 0
この回答へのお礼

出来ました。
詳細のわかりやすいご説明ありがとうございます。

お礼日時:2001/10/31 08:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報