El tipo del campo sea double precision?
Si es así, puede ser que donde ves 5000 en realidad haya 5000.0000001.
En este caso se soluciona cambiando el tipo a integer.
También puedes probar :
Código SQL
[-]
select * from clientes where id_localidad >= 5000 and id_localidad <5001
Si el campo es varchar, puede ser que haya un espacio delante o detras del valor.
Se solucionaría "trimando" la cadena antes del insert/update (trim(id_localidad))