I was a bit confused when PostgreSQL refused to accept a numeric data which is of the right type.
Or so I thought.
Turned out that on pgAdmin III, for numeric data type, where there are “Length” and “Precision” textbox; numeric (4,2) really means a 2 digit integer and 2 digit fraction. NOT 4 digit integer and 2 digit fraction.
After realizing this, every numeric fields on the database now accepts the input as it should.