2012-05-11 157 views

回答

6

試試這個:

echo number_format ($price, 2); 
+1

如果在循環中使用此函數將遇到嚴重的性能問題。 – transilvlad

9

對於MySQL,你可以使用format功能:

SELECT FORMAT(1.2345, 2); 

它將返回1.23

對於PHP,可以以類似的方式使用number_format

echo number_format(1.2345, 2); 

也打印1.23

4

其他答案是正確的,因爲他們會格式一個值到小數點後兩位。

然而,鑑於你的問題的背景下,更好的回答是不使用DOUBLE數據類型 - 至少,不是爲了這個目的。

Floating-point data types like DOUBLE are approximate並不代表確切的數字;它們對於表示質量或長度等連續量非常有用。對於像貨幣這樣的離散數量,它們可能是災難性的,導致非常意想不到的結果。對於這樣的量,你真的應該使用MySQL的fixed-point typesDECIMAL,使您可以指定,因此將不需要任何這樣的格式或四捨五入產生正確的貨幣值規模(小數存儲的,即數量)。

+1

+1,重要的區別 – davidethell

相關問題