簡體   English   中英

復制number_format

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM