Re: BUG #12053: Strange behavior for numeric types with unspecified precision-scale
От | Tom Lane |
---|---|
Тема | Re: BUG #12053: Strange behavior for numeric types with unspecified precision-scale |
Дата | |
Msg-id | 14914.1417017051@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #12053: Strange behavior for numeric types with unspecified precision-scale (tommaso.sala@cla-it.eu) |
Ответы |
Re: BUG #12053: Strange behavior for numeric types with
unspecified precision-scale
|
Список | pgsql-bugs |
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
В списке pgsql-bugs по дате отправления: