我有一個奇怪的問題,其中PHP的sprintf
似乎在改變一些數字。這不會一直髮生,只是偶爾發生。php sprintf顯示錯誤的號碼
下面的代碼:
echo sprintf('%04d',$product['priceUSD']*100)."(".($product['priceUSD']*100).")";
產生了$ 19.99的產品輸出如下:1998(1999)
我可以解決這個問題,但我很想知道爲什麼它是幹什麼的,如果有明顯的瘋狂的任何方法。
更新: 它看起來像是從float轉換爲int時發生的。下面給出了相同的輸出:
echo (int)($product['priceUSD']*100)."(".($product['priceUSD']*100).")";
什麼每個程序員應該知道關於浮點運算:HTTP:// floating-point-gui.de/ – 2012-07-10 22:29:04