2010-08-10 63 views
1

我試圖在開發服務器和生產服務器的php控制檯上運行以下代碼,並在兩個控制檯上都獲得了預期的(「10.01」)結果。number_format不會在不同服務器上返回相同的結果

var_dump(number_format('10.005',2,'.','')); 
string(5) "10.01" 

但是,當我執行使用的number_format調用生產服務器上的應用程序代碼中,我得到了「10.00」,當開發服務器上,我得到了「10.01」。

這是我的問題,當兩個服務器使用相同的代碼和數據庫(Same mysqldump和svn revision)時,會有什麼影響結果。

服務器信息:

發展服務器:操作系統:Ubuntu的10.04,處理器:英特爾Core 2 Duo [email protected]
生產服務器:操作系統:CentOS版本5.3,處理器:英特爾(R)至強( TM)CPU 3.00GHz

+1

處理器架構?相同的OS? – 2010-08-10 18:25:17

+0

什麼處理器?英特爾和AMD擁有不同的數學協處理器,並且可以在浮點數學上有微小差異。然而,我沒有看到它以前只有2位數的精度 - 通常發生在小數位數過多的情況下,在小數點後它會變圓。 – 2010-08-10 18:44:30

+0

當你從兩臺服務器的控制檯執行時,你如何解釋相同的結果? – yvoyer 2010-08-10 19:03:31

回答

0

從收到的評論中,我必須得出結論,錯誤是服務器端。 64位與32位。 我沒有看到其他解釋,直到有人能夠提供其他反饋。

相關問題