Я боролся с одной и той же проблемой, и было так, что после номера было пространство.
Длинная история Короче говоря, что когда-либо номер:
is_numeric(" 0.0") --> YES
is_numeric("0.0 ") --> NO
Вот пример ...
public function getCoordinates()
{
return sprintf('%1$f , %2$f',$this->getLatitude(),$this->getLongitude());
}
Позже в процессе ...
$myarr = explode(",",$_ScreenCoordinates);
echo "_ScreenCoordinates:$_ScreenCoordinates<br>";
echo "myarr[0]:".$myarr[0]." - ".((is_numeric($myarr[0]))?"YES":"NO")."<br>";
echo "myarr[1]:".$myarr[1]." - ".((is_numeric($myarr[1]))?"YES":"NO")."<br>";
echo "trimmed[0]:".$myarr[0]." - ".((is_numeric(trim($myarr[0])))?"YES":"NO")."<br>";
Печатный на экране:
Array ([0] => 1.200000 [1] => 123.456000)
_ScreenCoordinates:1.200000 , 123.456000
myarr[0]:*1.200000 * - NO
myarr[1]:* 123.456000* - YES
trimmed[0]:*1.200000 * - YES
no repro, 'is_numeric (0)' возвращает 'bool (true)' для меня. то же самое с 'is_int' – SilentGhost
@ Промышленное: Вы уверены? Http: //www.ideone.com/h5CSa – kennytm
Вы уверены, что это не буква O вместо нуля? –