Какие параметры у номера Труба - Угловая 2

123

Я использовал вертикальную черту ниже, чтобы ограничить числа двумя десятичными знаками.

{{ exampleNumber | number : '1.2-2' }}

Мне было интересно, какова логика «1.2-2»? Я играл с ними, пытаясь создать канал, который фильтрует до нуля десятичных знаков, но безрезультатно.

rushtoni88
источник
2
Это работает только с Angular 2
Lord Darth Vader

Ответы:

251

Параметр имеет такой синтаксис:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

Итак, ваш пример '1.2-2'означает:

  • Перед десятичной запятой отображается минимум 1 цифра
  • После запятой будет отображаться не менее 2 цифр.
  • Но не более 2 цифр
rinukkusu
источник
31
Это также, к сожалению, округляет число, и, что еще хуже, в документации нет ни слова об этом
phil294,
1
@Blauhirn У меня та же проблема, было ли ее простое решение или мне нужно создать свой собственный канал?
С. Робейнс
3
@ phil294 Я знаю, что ваш комментарий старый, но теперь есть описание округления чисел. angular.io/api/common/DecimalPipe
Криштиану Бомбазар
7

Из DOCS

Форматирует число как текст. Размер и разделитель групп, а также другие конфигурации, зависящие от языкового стандарта, зависят от активного языкового стандарта.

СИНТАКСИС:

number_expression | number[:digitInfo[:locale]]

где expressionэто число:

digitInfo это строка следующего формата:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}
  • minIntegerDigits - минимальное количество целых цифр для использования. По умолчанию 1.
  • minFractionDigits - минимальное количество цифр
  • после дроби. По умолчанию 0. maxFractionDigits - максимальное количество цифр после дроби. По умолчанию 3.
  • locale - это строка, определяющая используемый языковой стандарт (по умолчанию используется текущий LOCALE_ID)

DEMO

Sajeetharan
источник
7
  1. Что касается вашего первого вопроса, труба работает следующим образом:

    numberValue | number: {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

    • minIntegerDigits: минимальное количество целых цифр перед десятичной запятой, по умолчанию установлено значение 1.
    • minFractionDigits: минимальное количество целых цифр, отображаемых после десятичной точки.

    • maxFractionDigits: максимальное количество целых цифр, отображаемых после десятичной точки.

2. Что касается вашего второго вопроса, отфильтруйте до нуля десятичных знаков следующим образом:

{{ numberValue | number: '1.0-0' }}

Для дальнейшего чтения посетите следующий блог

Mwiza
источник
2

«1.0-0» даст вам ноль десятичных знаков, т.е. без десятичных знаков. например $ 500

Alchi Baucha
источник
Я пытаюсь отформатировать число, например 114,5, чтобы отображалось как 114, но когда я использую «1.0-0», отображается «115», кто-нибудь знает почему?
Караджа
1
Это потому, что angular округляет значение и дает 115 вместо 114,5.
алчи бауча
2
Почему отрицательные голоса? это работает и отвечает на вопрос, как фильтровать до нуля десятичных знаков. Спасибо, @alchibaucha решила мою проблему точно.
С ..