Python Glossary English

все Python 3localeфункция

locale.str()

числа и деньги

Превращает float в строку с десятичным разделителем текущей локали, но с точностью только 12 значащих цифр.

Синтаксис

locale.str(float)

Это не встроенный str(): формат здесь '%.12g', поэтому locale.str(0.1 + 0.2) даёт '0.3', а str() — '0.30000000000000004', и цифры молча теряются. Имя str входит в locale.__all__, так что from locale import * подменит встроенный str во всём модуле. Нужен разделитель локали — берите format_string('%.2f', x) или f'{x:n}'.

Примеры

import locale
print(locale.str(0.1 + 0.2), str(0.1 + 0.2))  # → 0.3 0.30000000000000004
print(locale.str(1 / 3))  # → 0.333333333333
print('str' in locale.__all__)  # → True — import * заменит встроенный str

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности