BUG #12053: Strange behavior for numeric types with unspecified precision-scale - Mailing list pgsql-bugs

From tommaso.sala@cla-it.eu
Subject BUG #12053: Strange behavior for numeric types with unspecified precision-scale
Date
Msg-id 20141125111529.15508.34881@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #12053: Strange behavior for numeric types with unspecified precision-scale  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      12053
Logged by:          Tommaso Sala
Email address:      tommaso.sala@cla-it.eu
PostgreSQL version: 9.3.0
Operating system:   Windows Server 2008
Description:

We found out that PgSql acts weirdly when using "numeric" type with
UN-specified precision and scale
Writing 0.001 via a .net DataAdapter to a numeric column with unspecified
precision-scale results in a weird 0.00 value:
if you later
SELECT "that value" + 0.001 you get 0.002,
but if you
SELECT "that value" * 2 you get 0.00
and
SELECT "that value" * 5 gives a rounded 0.01
Value in the database is correct, since if you TO_CHAR it, it gets printed
correctly as .001, but if you SELECT it, you get 0.00
Also, the weirder thing is that 0.000001 doesn't get truncated!
Specifying precision and scale for that column, solves the issue.
Bug is described here:

http://stackoverflow.com/questions/27109361/writing-0-001-to-postgres-9-x-via-data-adapter-results-in-a-weird-0-00-value

pgsql-bugs by date:

Previous
From: Jamie Koceniak
Date:
Subject: Re: BUG #12050: Orphaned base files
Next
From: bouda@edookit.com
Date:
Subject: BUG #12070: hstore extension: hstore_to_json_loose produces invalid JSON