2015-10-05 50 views
0

我遇到一個奇怪的問題,在我的客戶的網站之一:司與兩個整數與錯誤的逗號返回值

$val1/$val2 = 0,123 

注意在0,123爲逗號,它應該是一個圓點.,

這是我不知道的服務器設置嗎?

$val肯定是整數,但爲了以防萬一 - 這不也是工作:

intval($val1)/intval($val2) = 0,123 

PHP版本5.4.43-1~dotdeb+7.1Apache/2.2.22 (Debian)

+2

也許你有一些奇怪的區域設置。 –

+0

是的,這麼想。我該怎麼辦?對發生該問題的唯一客戶執行'str_replace'或強制他們「修復」該問題。我應該告訴他們什麼? – Xaver

+1

所以嗯更改區域設置 – 2015-10-05 19:33:08

回答

2

的區域設置爲明確規定的東西,其中小數點是以逗號表示。

要顯示當前區域:

var_dump(setlocale(LC_ALL, 0)); 

要顯示當前數字格式信息:

var_dump(localeconv()); 

爲避免你的代碼的其他本地化位,我建議改變意外更改只有LC_NUMERIC到你想要的地區。例如:

setlocale(LC_NUMERIC, 'en_US'); 

文檔:http://php.net/manual/en/function.setlocale.php

+0

幫助,非常感謝! – Xaver