Thread: HELP ! With Money type
Everyone, Just ran across an odd situation. I have defined a field: amount | money | not null default '' Works fine until the dollar amounts get very large - into the tens of millions. At that point, the actual amount stored becomes very unpredictable. I just saved a record via a simple front end App. I entered 56,000,000 When I retrieved the record i got: $13,050,327.04 !! Any thoughts ? ENVIRONMENT: Linux 2.4.20-20.7smp psql (PostgreSQL) 7.2.3 Thank you, Terry -- Terry L. Hampton Project Manager LimaCorp, LLC www.limacorp.com 513.587.1874
On Fri, 2004-07-23 at 13:36, Terry Hampton wrote: > > Everyone, > > Just ran across an odd situation. > I have defined a field: > > amount | money | not null default '' > > Works fine until the dollar amounts get > very large - into the tens of millions. > At that point, the actual amount stored > becomes very unpredictable. > > I just saved a record via a simple > front end App. I entered 56,000,000 > When I retrieved the record i got: > $13,050,327.04 !! > > Any thoughts ? The Money type is deprecated. It uses a floating point representation, which is not good for precise values. Use DECIMAL instead - e.g. DECIMAL(12,2)
Oliver Elphick <olly@lfix.co.uk> writes: > The Money type is deprecated. It uses a floating point representation, > which is not good for precise values. Actually the underlying storage is integer (int4), which is precise but has a very limited range. Terry is seeing overflows (which are evidently not being tested for :-(). regards, tom lane