2011-08-10 29 views
1

所以我的問題是,PHP沒有正確地投射這些類型..我需要找出一個比3更好的方式,如果有的話,我真的很喜歡知道爲什麼PHP將逗號視爲一段時間或某事。在逗號轉換終止字符串爲int

$cost = "7,800.00"; // "7,800.00" 
$cost = (int) "7,800.00" // int(7) 
$cost = (int) preg_replace('/[^-0-9\.]/i', '', "7,800.00"); // int(7800) 

編輯,來把事情說清楚那些不讀誰:我在尋找一個更優雅的方式來做到這一點。至於爲什麼存在這種行爲,我已經得到了我正在尋找的解釋。謝謝。

+0

我不相信這是一個逗號,也許貨幣格式沒有int值? money_format() –

+1

你有沒有考慮只刪除字符串中的逗號?逗號使它們不明確,因爲它們是某些國家的小數點字符,但不是其他國家的字符。你爲什麼不想做#3?只需將其包裝在一個函數中重用即可。 –

+0

有什麼問題?在這個問題上沒有問題 – ajreal

回答

0

PHP不知道如何處理分組字符(在這種情況下是逗號),因爲它不是數字字符,句點或e以指數取冪。所以當第一個不相關的字符被讀取時,函數停止解析。

其次,看一下數字功能PHP提供:floatvalintval

相關問題