类型转换以逗号结束字符串到int

时间:2011-08-10 18:05:24

标签: php string preg-replace int

所以我的问题是php没有正确地转换这些类型..我需要弄清楚比3号更好的方法,如果有的话,我真的很想知道为什么PHP会对待逗号作为一个时期或某事。

$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)

编辑,让那些不读书的人明白:我正在寻找一种更优雅的方式来做到这一点。至于为什么存在这种行为,我已经得到了我正在寻找的解释。谢谢。

1 个答案:

答案 0 :(得分:0)

PHP不知道如何处理分组字符(在本例中为逗号),因为它不是数字字符,句点或e用于取幂。因此,当读取第一个不相关的字符时,函数会停止解析。

其次,看看PHP提供的数字函数:floatvalintval