Форум сайта python.su
Уважаемые коллеги! Посредством comtypes вгоняю данные в Excel. Чтобы Excel отображал float вида 12345.60 с двумя знаками после точки, ему надо сказать
Cells[1, 2].NumberFormat = '0.00'
locale.localeconv()['decimal_point']
def GetDcmlSep(self): return str(bytes(str(3 / 2))[1])
Отредактировано SirJorah (Июнь 5, 2015 08:44:12)
Офлайн
а
locale.setlocale(...)
locale.localeconv()['decimal_point']
Офлайн
Если указать
locale.setlocale(locale.LC_NUMERIC, 'ru_RU')
# use German locale; name might vary with platform >>> locale.setlocale(locale.LC_ALL, 'de_DE')
Офлайн
name might vary with platform
>>> locale.getlocale() ('Russian_Russia', '1251') >>> locale.setlocale(locale.LC_NUMERIC, 'Russian_Russia') 'Russian_Russia.1251' >>> locale.setlocale(locale.LC_NUMERIC, '') 'Russian_Russia.1251' >>>
Отредактировано Shaman (Июнь 5, 2015 13:44:28)
Офлайн
Вот спасибо! Проверил, работает и с запятой, и с точкой. Конечно, видел, что “name might vary with platform”, но они же не разъясняют, как именно может отличаться. А в консоли я наблюдаю следующее:
>>> import locale >>> locale.getlocale() (None, None) >>>
Офлайн
SirJorah
locale.getdefaultlocale()
Офлайн
Ага! getdefault возвращает действительно не None:
>>> import locale >>> locale.getdefaultlocale() >>> ('ru_RU', 'cp1251')
Офлайн