Ваш браузер устарел. Рекомендуем обновить его до последней версии.

Advertisement


"Вести бизнес без рекламы всё равно, что подмигивать девушкам в полной темноте". Стюарт Хендерсон Бритт

Яндекс.Метрика

Улучшение формата вывода числовых значений

Опубликовано 05.10.2023

Познакомимся с функцией, которая позволяет выводить значения в наглядном числовом формате следующего вида: 5 545.80 или 5 545 или 5545,8 и т.п.

Разрядность регулируется через изменение в коде значения "1.00" => "1.0" или "1" и т.д.

Разделитель тысячных регулируется во вторых кавычках: replace(',', ' ').

Для воспроизведения функции, нужно импортировать библиотеку: Decimal

from decimal import Decimal, ROUND_HALF_UP

def numformat(num):
    # num = num.replace(' ', '') # если формат числа = str с пробелом.
    n = Decimal(str(num))
    number = n.quantize(Decimal("1.00"), ROUND_HALF_UP)
    formats = '{0:,}'.format(number).replace(',', ' ')
    return formats

print(numformat(5545.8))

out: 5 545.80

Info Board


Класс Decimal модуля decimal в Python.

Режимы округления ROUND_HALF модуля decimal.

Метод format в Python.

Метод str.replace в Python.