OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

引数をカンマ句切りしたデータにしたいです。

  • 困ってます
  • 質問No.160286
  • 閲覧数110
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 77% (27/35)

お世話になります。

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

10000000 → 10,000,000

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

よろしくお願いいたします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル11

ベストアンサー率 58% (114/195)

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

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

で行けたはず・・・一応Cygwin上のPerlで確認した所動くようです。
お礼コメント
pion16

お礼率 77% (27/35)

無事に動作いたしました。
ありがとうございました。
投稿日時 - 2001-10-31 08:19:03
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル11

ベストアンサー率 67% (126/186)

pion16 さんこんばんは。こんな感じのサブルーチンで いかがでしょうか。 一応テスト済みなので試してみて下さい。 ******************************************* #!/usr/local/bin/perl $number=<> ; &thousands; print "commanumber=$comman ...続きを読む
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;
お礼コメント
pion16

お礼率 77% (27/35)

出来ました。
詳細のわかりやすいご説明ありがとうございます。
投稿日時 - 2001-10-31 08:17:41
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ