Re: GetValue(), floats, and locales

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: GetValue(), floats, and locales
Дата
Msg-id 27744.1052324342@sss.pgh.pa.us
обсуждение исходный текст
Ответ на GetValue(), floats, and locales  ("Jeroen T. Vermeulen" <jtv@xs4all.nl>)
Ответы Re: GetValue(), floats, and locales  ("Jeroen T. Vermeulen" <jtv@xs4all.nl>)
Список pgsql-interfaces
"Jeroen T. Vermeulen" <jtv@xs4all.nl> writes:
> I just got a bothersome bug report from a libpqxx user in Hungary (where,
> as it turns out, floating-point numbers are written with decimal commas
> rather than decimal points).  It appears that libpq's GetValue() delivers
> floating-point fields in localized format.  The problem with this is that
> libpqxx then tries to parse the numbers using sscanf(), which apparently
> doesn't expect the number to have a decimal comma.

> This begs the question: is it libpq that represents these values using the
> client's locale, or does the server ship them in this form according to
> its own locale?

The server should always ship floats in "standard" representation.
AFAIK the only way to use localized numeric representations is to
write to_char() and to_number() calls (or use the money datatype).
If you can show us a case where plain float display does the other,
it's a bug.

libpq is not doing anything to you, in any case: it's far too stupid
to convert data at all ;-)
        regards, tom lane



В списке pgsql-interfaces по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Last round (I think) of FE/BE protocol changes
Следующее
От: "Jeroen T. Vermeulen"
Дата:
Сообщение: Re: GetValue(), floats, and locales