Обсуждение: 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