[英]Replicate number_format
我正在尋找一種復制number_format()(在php中存在)的方法。
例如
1234 => 1,234
10000 => 10,000
1000000 => 100,000
我使用的語言不支持列表/數組/正則表達式,因此我願意接受任何建議。 我以前的代碼似乎只適用於10000000(10,000,000)之類的數字,但是當我使用諸如1000之類的數字時,可悲的是給出了10,00。
php中的示例可以正常工作,因此我可以對其進行翻譯。
謝謝
另一種方法:
function number_format($num){
$len=strlen( (string)$num );
$newnum='';
for ($i=$len; $i>=0; --$i) {
$newnum=$num{$i}.$newnum;
if (!$i%3 && $i) {
$newnum=','.$newnum;
}
}
return (int)$newnum;
}
這是Kae Verens功能的工作版本。
function number_format($num){
$num=(string)$num;
$len=strlen($num);
$newnum='';
for ($i=0; $i<$len; ++$i) {
if (($i%3==0) && $i) {
$newnum=','.$newnum;
}
$newnum=$num[$len-$i-1].$newnum;
}
return $newnum;
}
這樣的事情可能會起作用(未經測試):
function number_format($num){
$num=(string)$num;
while (preg_match('/[^,][0-9]{3}[,$]/', $num) {
$num=preg_replace('/([^,])([0-9]{3})[,$]/', '\1,\2', $num);
}
$num=preg_replace('/^([0-9]),/', '\1', $num);
return $num;
}
$number = 10000000;
echo number_format($number, 0, '', ',');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.