Thanks for the detailed answer! Changing the function sinature seams to have solved the problem: CREATE OR REPLACE FUNCTION ceilDecimal(num numeric) RETURNS float AS $BODY$ BEGIN RETURN CEIL(num * 100) / 100; END $BODY$ LANGUAGE 'plpgsql'; SELECT ceilDecimal(0.07); ceildecimal ------------- 0.07 -- View this message in context: http://postgresql.nabble.com/Rounding-Problems-tp5932388p5932397.html Sent from the PostgreSQL - general mailing list archive at Nabble.com. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general