Yo me lio un poco con expresiones regulares, pero en este ejemplo tienes que solo valida cuando el usuario meta en la parte de enteros, cualquier numero, y en la parte de decimales dos digitos, ahora mismo lo del cero no se me ocurre nada, si tengo tiempo pienso algo
Editado:prueba con esta version: (preg_match('#^\d+(?:\.\d{1}\[1-9\s])?$#', $str, $match))
Código PHP:
$str = '1004325.23';
if (preg_match('#^\d+(?:\.\d{2})?$#', $str, $match)){
echo $match[0] . 'valido';
} else {
echo $str . ' no valido';
}