Re: [GENERAL] Floating point error
От | Florian Weimer |
---|---|
Тема | Re: [GENERAL] Floating point error |
Дата | |
Msg-id | 513751AE.9060301@redhat.com обсуждение исходный текст |
Ответ на | Re: [GENERAL] Floating point error (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On 03/05/2013 07:23 PM, Tom Lane wrote: > Maciek Sakrejda <m.sakrejda@gmail.com> writes: >> Thank you: I think this is what I was missing, and what wasn't clear >> from the proposed doc patch. But then how can pg_dump assume that it's >> always safe to set extra_float_digits = 3? > > It's been proven (don't have a link handy, but the paper is at least > a dozen years old) that 3 extra digits are sufficient to accurately > reconstruct any IEEE single or double float value, given properly > written conversion functions in libc. So that's where that number comes > from. Now, if either end is not using IEEE floats, you may or may not > get equivalent results --- but it's pretty hard to make any guarantees > at all in such a case. There's also gdtoa, which returns the shortest decimal representation which rounds to the same decimal number. It would print 0.1 as 0.1, but 0.1 + 0.2 as 0.30000000000000004. -- Florian Weimer / Red Hat Product Security Team
В списке pgsql-hackers по дате отправления: