Обсуждение: Bug #878: different format of float values in 7.2.and 7.3

Поиск
Список
Период
Сортировка

Bug #878: different format of float values in 7.2.and 7.3

От
pgsql-bugs@postgresql.org
Дата:
Denis N.Stepanov (D.N.Stepanov@inp.nsk.su) reports a bug with a severity of 2
The lower the number the more severe it is.

Short Description
different format of float values in 7.2.and 7.3

Long Description
There is a difference in return value of some floating point operations in PostgreSQL 7.2 and 7.3. The return value in
7.3contains padding to the right zeroes, while in 7.2 it does not. This is a compartibility problem in fact since our
applicationused to deal with exact float strings without any unnecessary padding zeroes. I use a usual
postgresql*-7.3.1-1PGDG.i386.rpmtaken from your site, if it makes sense. Please take a look into this. 

Sample Code
The following line:

SELECT 1875/1000.0

produces different results. In 7.2.3 it is:

      ?column?
---------------------
       1.875

while in 7.3.1 it is:

      ?column?
---------------------
 1.87500000000000000



No file was uploaded with this report

Re: Bug #878: different format of float values in 7.2.and 7.3

От
Tom Lane
Дата:
pgsql-bugs@postgresql.org writes:
> The following line:
> SELECT 1875/1000.0
> produces different results. In 7.2.3 it is:
>       ?column?
> ---------------------
>        1.875

> while in 7.3.1 it is:
>       ?column?
> ---------------------
>  1.87500000000000000

The above expression is taken as NUMERIC datatype in 7.3, rather than
FLOAT8 as it was in 7.2.  To get the same output as before, try
    SELECT 1875/1000.0::float8;

            regards, tom lane

Re: Bug #878: different format of float values in 7.2.and

От
Marcin Winkler
Дата:
On Mon, 20 Jan 2003 03:13:38 -0500 (EST)
pgsql-bugs@postgresql.org wrote:

> strings without any unnecessary padding zeroes. I use a usual
> postgresql*-7.3.1-1PGDG.i386.rpm taken from your site, if it makes
> sense. Please take a look into this.
>
> Sample Code
> The following line:
>
> SELECT 1875/1000.0
>
> produces different results. In 7.2.3 it is:
>
>       ?column?
> ---------------------
>        1.875
>
> while in 7.3.1 it is:
>
>       ?column?
> ---------------------
>  1.87500000000000000

qurczak=# SELECT 1875::float/1000.0;
 ?column?
----------
    1.875
(1 row)

qurczak=# SELECT (1875/1000.0)::float;
 float8
--------
  1.875
(1 row)

It works ;] You try something this int/float = yee khmm but
int::float/float= float, or something like this ;]

--
"Nieobecni nie maj± racji"

Marcin Winkler

Re: Bug #878: different format of float values in 7.2.and

От
"Denis N. Stepanov"
Дата:
On Mon, 20 Jan 2003, Tom Lane wrote:

TL> pgsql-bugs@postgresql.org writes:
TL> > The following line:
TL> > SELECT 1875/1000.0
TL> > produces different results. In 7.2.3 it is:
TL> >       ?column?
TL> > ---------------------
TL> >        1.875
TL>
TL> > while in 7.3.1 it is:
TL> >       ?column?
TL> > ---------------------
TL> >  1.87500000000000000
TL>
TL> The above expression is taken as NUMERIC datatype in 7.3, rather than
TL> FLOAT8 as it was in 7.2.  To get the same output as before, try
TL>     SELECT 1875/1000.0::float8;

Thanks. The main thing I understood is that it was done intentionally. Is there
a kind of document (mail message maybe) that describes the intentions to make
typecasts more strict and/or pecularities of such changes? I guess many users
faced with similar problems, probably it was already explained somewhere.

--
  Regards,
             Den.