Вопрос по flask, jinja2, wsgi – Как использовать поплавковый фильтр, чтобы показать только две цифры после десятичной точки?

39

Я использую шаблон Flask / Jinja2, чтобы показать число, используя|float фильтр.

Вот мой код

{% set proc_err = nb_err|length / sum * 100 %}
({{proc_err|float}}%)

Вывод немного неловко:

17/189 (8.99470899471%)

Я ищу способ сделать места после точки, ограниченные числом, например. 2.

Желаемый вывод:

17/189 (8.99%)

Ваш Ответ

4   ответа
43

round отформатироватьfloat с заданной точностью.

Извлеченный издокументы:

round(value, precision=0, method='common')

Округлите число до заданной точности. Первый параметр указывает точность (по умолчанию0), второй метод округления:

common rounds either up or down ceil always rounds up floor always rounds down

Если вы не указали методcommon используется.

{{ 42.55|round }}
    -> 43.0
{{ 42.55|round(1, 'floor') }}
    -> 42.5

Обратите внимание, что даже если округлено до0 точность,float возвращается Если вам нужно настоящее целое число, передайте его черезint:

{{ 42.55|round|int }}
    -> 43
Это должно быть помечено как правильный ответ
@lol вопрос о округлении, а не о форматировании. Даже если ОП хотел форматирование. Печать десятичных дробей касается также локалей. Округление - это математическая операция, в то время как печать отформатированного значения является только визуальной. В ОП вопрос, хотя лучше печатать 100%, чем 100,00%;)
Кроме этогоround(2) не вернет "42,00"; даже если вам придется сериализоватьDecimal() значение.
Да, вы правы, и поймали меня на том, что я бросаю смущающую подлость в кодовую базу. Лол!
-3

Используйте этот код переднего конца:

<div *ngIf="device.usage > 0">
   {{ Round(device.usage)}} min  
</div>

и поместите следующую функцию в файл .ts:

Round(number):number
{
    return parseFloat(Number((number/1000) / 60).toFixed(2)); 
}
5

Вот один из подходов:

{{ "%.2f"|format(result) }}

Отрегулируй как хочешь :)

59

Мой код:

{% set proc_err = nb_err|length / sum * 100 %}
({{proc_err|float}}%)

Можно немного изменить с помощью:

{% set proc_err = nb_err|length / sum * 100 %}
({{'%0.2f' % proc_err|float}}%)

или используяformat:

({{'%0.2f'| format(proc_err|float)}}%)

Ссылка может быть найдена здесь наJinja2 GitHub выпуск 70

Похожие вопросы