Re: Failing example for to_number()

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Erwin Brandstetter <brsaweda(at)gmail(dot)com>
Cc: "pgsql-docs(at)postgresql(dot)org" <pgsql-docs(at)postgresql(dot)org>
Subject: Re: Failing example for to_number()
Date: 2017-08-21 14:30:15
Message-ID: CAKFQuwaWwR5P8U3Y8C3FSfXHVeBgkLG1utG0g8vb5jSx_swX5g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On Mon, Aug 21, 2017 at 5:36 AM, Erwin Brandstetter <brsaweda(at)gmail(dot)com>
wrote:

> The manual suggests here:
>
> https://www.postgresql.org/docs/current/static/functions-
> formatting.html#FUNCTIONS-FORMATTING-TABLE
>
> > to_number(text, text) | numeric convert string to numeric | to_number
> ('12,454.8-', '99G999D9S')
>
> The example fails for locales where the comma (',') does not happen to be
> the group separator and the dot ('.') is not the decimal point.
>
> The example is incorrectly assuming en_US locale. It must instead work
> locale-agnostic. Replace:
>
> to_number ('12,454.8-', '99G999D9S')
>
> with:
>
> to_number ('12,454.8-', '99,999.9S')
>
>
​I can see the appeal of demonstrating the locale-dependent G and D symbols
so that a user becoming familiar with the feature knows that they have
options other than just writing out the comma and period literally. If one
wants to try the example in a language other than in which the example was
written they should modify it so that the literal number being parsed in
written in conformance to the locale definition for the language you are
using.

David J.

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Erwin Brandstetter 2017-08-21 14:55:52 Re: Failing example for to_number()
Previous Message Erwin Brandstetter 2017-08-21 12:36:27 Failing example for to_number()