Re: cast numeric with scale and precision to numeric plain - Mailing list pgsql-general

From Sim Zacks
Subject Re: cast numeric with scale and precision to numeric plain
Date
Msg-id 4ADD935A.8060601@compulab.co.il
Whole thread Raw
In response to Re: cast numeric with scale and precision to numeric plain  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: cast numeric with scale and precision to numeric plain
Re: cast numeric with scale and precision to numeric plain
List pgsql-general
<meta content="text/html;charset=windows-1255"
 http-equiv="Content-Type">





    Numeric with scale precision always shows the trailing zeros.
Numeric plain only shows numbers after the decimal point that are being
used.



That statement is false:

regression=# select 1234.000::numeric;
 numeric
----------
 1234.000
(1 row)

I'm not sure offhand what is the easiest way to suppress trailing
zeroes, but casting to plain numeric is not the route to a solution.

Really this is a textual formatting problem.  You might find that the
best bet is something with trim() or a regexp.  The trick would be
not removing zeroes that are significant ...

            regards, tom lane


According to the documentation, numeric is stored without any leading
or trailing zeros.
http://www.postgresql.org/docs/current/static/datatype-numeric.html
Numeric values are physically stored without
any extra leading or
trailing zeroes. Thus, the declared precision and scale of a column are
maximums, not fixed allocations. (In this sense the numeric
type is more akin to varchar(n)
than to char(n).)
The actual storage requirement is two bytes for each group of four
decimal digits, plus eight bytes overhead.
However, in practice:
create table test(f1 numeric);
insert into test(f1)values(15.000);
select * from test;
f1
-------
15.000

pgsql-general by date:

Previous
From: Grzegorz Jaśkiewicz
Date:
Subject: Re: Free Tool to design Postgres Databases
Next
From: Grzegorz Jaśkiewicz
Date:
Subject: Re: Free Tool to design Postgres Databases