2016-02-11 91 views
0

我想在PHP中格式化一個數字,總是在小數點前至少有兩個地方,並且似乎無法弄清楚不管我是谷歌/嘗試。如果在小數點前沒有整數,我寧願只做這個。使用PHP格式化一個數字,總是有小數點後兩位數

這將是理想的期望輸出,因爲我不知道之前的數字,它每頁都會改變。

0.59 becomes 00.59 
1.00 stays 1.00 
0.43 becomes 00.43 
14.56 stays 14.56 

任何想法?

+0

number_format()浮現在腦海。 '1.00'不是「小數點前2位數」,因此格式不一致 – 2016-02-11 21:03:49

+0

爲什麼'1'可以免於領先'0'?它是特殊的,還是適用於任何非零前導數字?如果它只是0需要填充,那麼'if(substr($ num,0,1)==='0'){$ num ='0'。 $ num}'可能是最簡單的。 –

+0

這聽起來像一個好主意@Dagon –

回答

1

添加一個0,如果數量少於1:

$res = (($num < 1) ? '0' : '').number_format($num, 2); 
+0

結束了使用這個,很好,很簡單。 – Xander

1

這裏有一種方法做你想要什麼:

$num = 0.342; 
$num = number_format(round((float) $num, 2),2); 
if ($num < 1) $num = str_pad($num,5,'0',STR_PAD_LEFT); 
echo $num; 
1

如果你不是在Windows上,這個工程:

$num = 0.59; 
echo trim(money_format("%=0#2.2n", (float)$num)); 

您可能還需要添加!標誌如果您在輸出中獲得貨幣符號。

請參閱php.net/money_format

相關問題