将结束字符串转换为int逗号


Typecasting terminating string to int at comma

所以我的问题是php没有正确地转换这些类型。如果有的话,我需要想出一个比第三个更好的方法,而且我真的很想知道为什么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)

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

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

第二,看一下PHP提供的数字函数:floatvalintval