tommaso.sala@cla-it.eu writes:
> 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!
I think you must have some issues with the .Net adapter. Postgres
itself doesn't give such inconsistent results:
regression=# create table t1 (f1 numeric);
CREATE TABLE
regression=# insert into t1 values (0.001);
INSERT 0 1
regression=# select * from t1;
f1
-------
0.001
(1 row)
regression=# select f1 + 0.001 from t1;
?column?
----------
0.002
(1 row)
regression=# select f1 * 2 from t1;
?column?
----------
0.002
(1 row)
regression=# select f1 * 5 from t1;
?column?
----------
0.005
(1 row)
regards, tom lane