Re: to_char with locale decimal separator

From: Ingmar Brouns <swingi(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: to_char with locale decimal separator
Date: 2013-07-29 13:12:37
Message-ID: CA+77E=ac14Nbmk6PgToKYo+w639s+Jv0McaAcuRSO_-E=UKzVg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Jul 29, 2013 at 1:24 PM, Ingmar Brouns <swingi(at)gmail(dot)com> wrote:
> Hi,
>
> I need to convert some numerical values to text using the decimal
> separator that corresponds to the current locale. However, I do
> not want to lose information by padding with zero decimals or
> truncating zero decimals. So I basically want a text cast that
> also replaces the dot by a comma. I've looked at the to_char
> function and the formatting patterns, but when using those I
> either add or truncate zero decimals.
>
>
> # show lc_numeric;
> lc_numeric
> ------------
> nl_NL.utf8
> (1 row)
>
> # select 1.500::text;
> text
> -------
> 1.500
> (1 row)
>
> # select to_char(1.500, '999999D99999999');
> to_char
> ------------------
> 1,50000000
> (1 row)
>
> # select to_char(1.500, 'FM999999D99999999');
> to_char
> ---------
> 1,5
> (1 row)
>

Maybe its important to add that the nr of decimals in the values
is variable. I could of course adjust the pattern to work for
1.500, but I'm looking for a solution that will work with an
arbitrary numerical value and that's a little more elegant than
casting to text, and then replacing the dot by a comma.

>
> I would like to have '1,500' as the output, what is the best way
> to achieve this?
>
> Thanks in advance,
>
> Ingmar

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ondrej Chaloupka 2013-07-29 13:33:44 Incorrect response code after XA recovery
Previous Message Javier de la Torre 2013-07-29 13:12:04 Event trigger information accessibility on plpgsql