2013-07-18 76 views
1

如何在前三個字符後添加一個句點,然後在後面的每3個字符?如何在前三個字符後添加一個句點,然後在後面的每3個字符?

Example 
$number = 1100000 
Output = 1'100.000 

Example2 
$number = 560000 
Output = 560.000 

Example3 
$number = 1000256000 
Output = 1'000'256.000 

我試圖number_format但它會添加相同的符號(「)...謝謝!

$number = 1100000; 
$english_format_number = number_format($number, 0, '.', "'"); 
Output: 1'100'000 

$number = 1100000; 
$english_format_number = number_format($number, 3, '.', "'"); 
Output: 1'100'000.000 

$number = 1100000; 
echo chunk_split($number,1,"."); 

謝謝!!

+0

你能第一在尋求解決方案之前嘗試一些東西(編寫代碼)? –

+0

你有沒有嘗試過自己? – anubhava

+1

在格式化之前嘗試除以1000 – StephenTG

回答

3

您在number_format的正確軌道上,但您必須指定所有4個參數才能達到您要查找的結果。您還需要將數字除以1000以避免額外的小數位數。

echo number_format($number/1000, 3, "." , "'"); 

參見:http://php.net/manual/en/function.number-format.php

PHPFiddle:http://phpfiddle.org/main/code/e2c-a6q

+0

我試過這個,但它在數字的末尾加上'.000'作爲「較長」的值 – antonioj1015

+0

@ antonioj1015編輯後,您還必須先將數字除以1000。 –

0

我不得不做類似的事情最近,試試這個功能:

function formatMoney($number, $fractional=false) { 
    if ($fractional) { 
     $number = sprintf('%.2f', $number); 
    } 
    while (true) { 
     $replaced = preg_replace('/(-?\d+)(\d\d\d)/', '$1,$2', $number); 
     if ($replaced != $number) { 
      $number = $replaced; 
     } else { 
      break; 
     } 
    } 
    return $number; 
} 

編輯爲您的使用

相關問題