I think the real problem right now is the lack of a decimal type.
An integer out of range could be converted to a decimal without
loosing precision. I think this would be the right thing to do.
This is how Informix and DB/2 do it (and Oracle I guess).
I personally think postgresql should not force the user to use
typecasts where it is not absolutely necessary.
Andreas