Using the ST_Distance function from PostGIS (http://www.postgis.org/docs/ST_Distance.html) which returns a float.
I would like to return the result of this function rounded to 3 decimal places. What is the best way to do that?
I can't claim it's the best way, but have you tried the following? Substituting a different function for ST_Distance, for this example:
sar=> SELECT round(pi()::numeric,3);
If you want to specify the number of decimal places using round(), you have to cast the value as numeric.
You could cast the result directly to numeric(7,3) if you wanted:
sar=> SELECT (pi()*1000)::numeric(7,3);
...but that will fail if your value is too large:
sar=> SELECT (pi()*10000)::numeric(7,3);
ERROR: numeric field overflow
DETAIL: A field with precision 7, scale 3 must round to an absolute value less than 10^4.
Hope that helps,
In response to
pgsql-novice by date
|Next:||From: Tom Lane||Date: 2012-03-10 16:14:53|
|Subject: Re: float to numeric(7,3) |
|Previous:||From: Frank Bax||Date: 2012-03-10 13:59:55|
|Subject: Re: float to numeric(7,3)|