все 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Сообщить о неточности