Thank you so much for your answer. The  locale.setlocale(category=locale.LC_NUMERIC, locale="Slovenian")  works like a charm in my application. Now the 'n' format specifier works as I want. But tell me whether the 'n' format specifier can be forced to round the float to just one decimal place. I know that the 'f' format specifier does that by specifying ".1f", but 'f' is not locale-aware. I have set the 'n' format specifier in my application like ".3n", which is okay if the returned number is two integers and one decimal, but is not okay if the returned number is one integer and two decimals, because I want just one decimal, always. How can I make that by using the 'n' format specifier?


On Wed, Oct 20, 2010 at 11:37 AM, Tim Golden <report@bugs.python.org> wrote:

Tim Golden <mail@timgolden.me.uk> added the comment:

Boštjan, the code segment you quote is the *fallback* if the
C module hasn't been built for some reason. The module simply
calls through to the underlying C Library. I notice you're
running on Windows, so this is a useful MS page:

http://msdn.microsoft.com/en-us/library/x99tb11d%28VS.71%29.aspx

and you can see there that a call of setlocale (LC_ALL, "English")
is valid (of "French" if you prefer):

Python 3.1.2 (r312:79149, Mar 21 2010, 00:41:52) [MSC v.1500 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.setlocale (locale.LC_ALL, "French")
'French_France.1252'
>>>

----------
nosy: +tim.golden

_______________________________________
Python tracker <report@bugs.python.org>
<http://bugs.python.org/issue10092>
_______________________________________