Я использую python 3.8 в Docker контейнере. Это мой docker файл.
# Python image
FROM python:3.8.2-buster
# Install locales
RUN apt-get update
RUN apt-get install -y locales
RUN sed -i -e 's/# it_IT.UTF-8 UTF-8/it_IT.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
#etc...
Я хочу отформатировать числа в соответствии с итальянским форматом (то есть, .
в качестве разделителя тысяч). К счастью, формат-спецификация-мини-язык говорит:
Опция ',
' сигнализирует об использовании запятой для разделителя тысяч. Для разделителя с поддержкой локали используйте вместо этого целочисленный тип представления 'n
'.
Я запускаю этот код внутри такого контейнера:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, "it_IT.UTF-8")
>>> a = 10000000
>>> f'a is equal to {a:,}'
'a is equal to 10,000,000' # ok!
>>> f'a is equal to {a:n}'
'a is equal to 10000000' # What!? I expected 'a is equal to 10.000.000' instead
, но последняя строка ведет себя неожиданно.
Где я не прав? Это проблема с определением локали или с использованием форматирования чисел n
?