Re: [SQL] float4

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [SQL] float4
Дата
Msg-id 18537.930612727@sss.pgh.pa.us
обсуждение исходный текст
Ответ на float4  (JT Kirkpatrick <jt-kirkpatrick@mpsllc.com>)
Список pgsql-sql
JT Kirkpatrick <jt-kirkpatrick@mpsllc.com> writes:
> we made all monetary fields FLOAT4's.  weird stuff -- or maybe not to you 
> -- we insert 23516.69 into a float4 field directly in psql, and then select 
> it, and it shows 23516.7.  this is not good for a field used for MONEY!!! 

Yup, no surprise.  float4 is good to about 6 decimal digits on most
machines, and yours is evidently right in there with the pack.

float8 is good to about 16 digits on most hardware, but I wouldn't
really recommend it either if you need guaranteed-exact calculations.

The money type in Postgres is a fairly crude hack that I can't recommend
(it's basically an int4 representing cents, and will therefore poop out
at 2^31 cents or about $20million).

What you really want is the general "numeric" type added in Postgres 6.5
--- decimal representation with as many digit positions as you specify.
It's a good deal slower for calculations than native floats,
unfortunately, especially if you use a very wide numeric field.
But calculations per-se are seldom the bottleneck for a database
application...

BTW, the current plan is to phase out the money type in favor of numeric
in some future release.
        regards, tom lane


В списке pgsql-sql по дате отправления:

Предыдущее
От: Don Garrett
Дата:
Сообщение: Re: [ADMIN] float4
Следующее
От: "Hostmaster - Internet au Virtuel Inc."
Дата:
Сообщение: User defined functions through ODBC