Re: [HACKERS] Floating point error

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Maciek Sakrejda <m(dot)sakrejda(at)gmail(dot)com>
Cc: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>, "Daniel Farina *EXTERN*" <daniel(at)heroku(dot)com>, "Tom Duffey *EXTERN*" <tduffey(at)trillitech(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [HACKERS] Floating point error
Date: 2013-03-05 18:38:47
Message-ID: 12107.1362508727@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

Maciek Sakrejda <m(dot)sakrejda(at)gmail(dot)com> writes:
> On Tue, Mar 5, 2013 at 10:23 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> Basically, the default behavior is tuned to the expectations of people
>> who think that what they put in is what they should get back, ie we
>> don't want the system doing this by default:
>>
>> regression=# set extra_float_digits = 3;
>> SET
>> regression=# select 0.1::float4;
>> float4
>> -------------
>> 0.100000001
>> (1 row)
>>
>> regression=# select 0.1::float8;
>> float8
>> ---------------------
>> 0.10000000000000001
>> (1 row)
>>
>> We would get a whole lot more bug reports, not fewer, if that were
>> the default behavior.

> Isn't this a client rendering issue, rather than an on-the-wire encoding issue?

Nope, at least not unless you ask for binary output format (which
introduces a whole different set of portability gotchas, so it's
not the default either).

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Duffey 2013-03-05 19:01:58 Re: [GENERAL] Floating point error
Previous Message Maciek Sakrejda 2013-03-05 18:36:05 Re: [HACKERS] Floating point error

Browse pgsql-hackers by date

  From Date Subject
Next Message Steve Singer 2013-03-05 18:42:08 Re: transforms
Previous Message Maciek Sakrejda 2013-03-05 18:36:05 Re: [HACKERS] Floating point error