Re: Rounding Float Array

From: Chris Mair <chris(at)1006(dot)org>
To: Alex Magnum <magnum11200(at)gmail(dot)com>, Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Rounding Float Array
Date: 2015-09-21 10:08:03
Message-ID: bc36e5fcbd2eccb14dec87ea53ba9ed6@smtp.hushmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 21/09/15 11:55, Alex Magnum wrote:
> Hello,
>
> I have a float array holding geo location information.
>
> geoloc
> -----------------------------------
> {5.3443133704554,100.29457569122}
> {5.3885574294704,100.29601335526}
> {3.1654978750403,101.60915851593}
> {5.3766154817748,100.31472444534}
> {3.1545014704258,101.70036971569}
> (5 rows)
>
> Is there an easy way to round all values to 4 decimals.
>
> I can round the individual values and return them seperately but I need to return them as an array.
>
> lat | long
> ---------+-----------
> 5.34431 | 100.29458
> 5.38856 | 100.29601
> 3.16550 | 101.60916
> 5.37662 | 100.31472
> 3.15450 | 101.70037
> (5 rows)
>
> Any suggestion is highly appreciated.

This might work for you.

Bye,
Chris.

chris=# select * from geoloc;
geoloc
-----------------------------------
{5.3443133704554,100.29457569122}
{5.3885574294704,100.29601335526}
{3.1654978750403,101.60915851593}
{5.3766154817748,100.31472444534}
{3.1545014704258,101.70036971569}
(5 rows)

chris=# select (select array_agg(to_char(x, '999.9999')::float) from unnest(geoloc) as x) from geoloc;;
array_agg
-------------------
{5.3443,100.2946}
{5.3886,100.296}
{3.1655,101.6092}
{5.3766,100.3147}
{3.1545,101.7004}
(5 rows)

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Andreas Kretschmer 2015-09-21 10:08:19 Re: Rounding Float Array
Previous Message Alex Magnum 2015-09-21 09:55:23 Rounding Float Array