PostgreSQL - arredondando números de ponto flutuante

Eu tenho uma pergunta newbie sobre números de ponto flutuante no PostgreSQL 9.2.

Existe uma função para arredondar um número de ponto flutuante diretamente, ou seja, sem ter que converter o número para um tipo numérico primeiro?

Além disso, gostaria de saber se existe uma função a ser arredondada por uma unidade de medida arbitrária, como por exemplo, a 0,05 mais próxima?

Ao converter o número em um formato decimal primeiro, a consulta a seguir funciona perfeitamente:

SELECT round(1/3.::numeric,4);

 round  
--------
 0.3333
(1 row)
Time: 0.917 ms

No entanto, o que eu realmente gostaria de alcançar é algo como o seguinte:

SELECT round(1/3.::float,4);

que atualmente me dá o seguinte erro:

ERROR:  function round(double precision, integer) does not exist at character 8
Time: 0.949 ms

obrigado