Обсуждение: Bug #878: different format of float values in 7.2.and 7.3
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
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
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
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.