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 по дате отправления: