PHPで数字(数値)を3桁ごとにカンマ(,)で区切る方法 [コンピュータ]
Perl Tips: Perl で、数字(数値)を3桁ごとにカンマ(,)で区切る方法
#!/usr/bin/perl
my $num = 123456789;
print comman($num);
sub comma {
local($_) = @_;
1 while s/(.*\d)(\d\d\d)/$1,$2/;
$_;
}
PHPではnumber_format関数を使えば出来るのですが、正規表現の練習ということで。
http://jp.php.net/manual/ja/function.number-format.php
小数点を含む場合にも対応させてみました。
ループのところ、もっとスマートに出来ないだろうか・・・
<?php // 数値のカンマ区切り function comma($v) { $ret = ""; while(true) { $ret = preg_replace("/^([^\.]\d+)(\d\d\d)/", "$1,$2", $v); if ( $v == $ret ) break; $v = $ret; } return $ret; } $num = "12345678901234567890.1234567890"; echo( $num ); echo( "\n" ); echo( comma($num) ); echo( "\n" ); ?>
実行結果
12345678901234567890.1234567890 12,345,678,901,234,567,890.1234567890
コメント 0