Real type takes 4 byte storage sizes and double precision takes 8 bytes.
I altered a data type from double precision to real and vacuumed DB.
But PostgreSQL's data disk usage did not shrinked.
And pg_dump size remained same.
It seems that real takes 8 byte storage sizes.
Here's my environments:
CPU: AMD Opteron
OS: Solaris 10
PostgreSQL: 8.2.4, compiled w/ Sun CC using 64-bit flags